<!DOCTYPE html><html><head>
      <title>04</title>
      <meta charset="utf-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      
      <style>
      /*!
* reveal.js 4.0.2
* https://revealjs.com
* MIT licensed
*
* Copyright (C) 2020 Hakim El Hattab, https://hakim.se
*/
.reveal .r-stretch,.reveal .stretch{max-width:none;max-height:none}.reveal pre.r-stretch code,.reveal pre.stretch code{height:100%;max-height:100%;box-sizing:border-box}.reveal .r-fit-text{display:inline-block;white-space:nowrap}.reveal .r-stack{display:grid}.reveal .r-stack>*{grid-area:1/1;margin:auto}.reveal .r-hstack,.reveal .r-vstack{display:flex}.reveal .r-hstack img,.reveal .r-hstack video,.reveal .r-vstack img,.reveal .r-vstack video{min-width:0;min-height:0;-o-object-fit:contain;object-fit:contain}.reveal .r-vstack{flex-direction:column;align-items:center;justify-content:center}.reveal .r-hstack{flex-direction:row;align-items:center;justify-content:center}.reveal .items-stretch{align-items:stretch}.reveal .items-start{align-items:flex-start}.reveal .items-center{align-items:center}.reveal .items-end{align-items:flex-end}.reveal .justify-between{justify-content:space-between}.reveal .justify-around{justify-content:space-around}.reveal .justify-start{justify-content:flex-start}.reveal .justify-center{justify-content:center}.reveal .justify-end{justify-content:flex-end}html.reveal-full-page{width:100%;height:100%;height:100vh;height:calc(var(--vh,1vh) * 100);overflow:hidden}.reveal-viewport{height:100%;overflow:hidden;position:relative;line-height:1;margin:0;background-color:#fff;color:#000}.reveal .slides section .fragment{opacity:0;visibility:hidden;transition:all .2s ease;will-change:opacity}.reveal .slides section .fragment.visible{opacity:1;visibility:inherit}.reveal .slides section .fragment.disabled{transition:none}.reveal .slides section .fragment.grow{opacity:1;visibility:inherit}.reveal .slides section .fragment.grow.visible{transform:scale(1.3)}.reveal .slides section .fragment.shrink{opacity:1;visibility:inherit}.reveal .slides section .fragment.shrink.visible{transform:scale(.7)}.reveal .slides section .fragment.zoom-in{transform:scale(.1)}.reveal .slides section .fragment.zoom-in.visible{transform:none}.reveal .slides section .fragment.fade-out{opacity:1;visibility:inherit}.reveal .slides section .fragment.fade-out.visible{opacity:0;visibility:hidden}.reveal .slides section .fragment.semi-fade-out{opacity:1;visibility:inherit}.reveal .slides section .fragment.semi-fade-out.visible{opacity:.5;visibility:inherit}.reveal .slides section .fragment.strike{opacity:1;visibility:inherit}.reveal .slides section .fragment.strike.visible{text-decoration:line-through}.reveal .slides section .fragment.fade-up{transform:translate(0,40px)}.reveal .slides section .fragment.fade-up.visible{transform:translate(0,0)}.reveal .slides section .fragment.fade-down{transform:translate(0,-40px)}.reveal .slides section .fragment.fade-down.visible{transform:translate(0,0)}.reveal .slides section .fragment.fade-right{transform:translate(-40px,0)}.reveal .slides section .fragment.fade-right.visible{transform:translate(0,0)}.reveal .slides section .fragment.fade-left{transform:translate(40px,0)}.reveal .slides section .fragment.fade-left.visible{transform:translate(0,0)}.reveal .slides section .fragment.current-visible,.reveal .slides section .fragment.fade-in-then-out{opacity:0;visibility:hidden}.reveal .slides section .fragment.current-visible.current-fragment,.reveal .slides section .fragment.fade-in-then-out.current-fragment{opacity:1;visibility:inherit}.reveal .slides section .fragment.fade-in-then-semi-out{opacity:0;visibility:hidden}.reveal .slides section .fragment.fade-in-then-semi-out.visible{opacity:.5;visibility:inherit}.reveal .slides section .fragment.fade-in-then-semi-out.current-fragment{opacity:1;visibility:inherit}.reveal .slides section .fragment.highlight-blue,.reveal .slides section .fragment.highlight-current-blue,.reveal .slides section .fragment.highlight-current-green,.reveal .slides section .fragment.highlight-current-red,.reveal .slides section .fragment.highlight-green,.reveal .slides section .fragment.highlight-red{opacity:1;visibility:inherit}.reveal .slides section .fragment.highlight-red.visible{color:#ff2c2d}.reveal .slides section .fragment.highlight-green.visible{color:#17ff2e}.reveal .slides section .fragment.highlight-blue.visible{color:#1b91ff}.reveal .slides section .fragment.highlight-current-red.current-fragment{color:#ff2c2d}.reveal .slides section .fragment.highlight-current-green.current-fragment{color:#17ff2e}.reveal .slides section .fragment.highlight-current-blue.current-fragment{color:#1b91ff}.reveal:after{content:'';font-style:italic}.reveal iframe{z-index:1}.reveal a{position:relative}@keyframes bounce-right{0%,10%,25%,40%,50%{transform:translateX(0)}20%{transform:translateX(10px)}30%{transform:translateX(-5px)}}@keyframes bounce-left{0%,10%,25%,40%,50%{transform:translateX(0)}20%{transform:translateX(-10px)}30%{transform:translateX(5px)}}@keyframes bounce-down{0%,10%,25%,40%,50%{transform:translateY(0)}20%{transform:translateY(10px)}30%{transform:translateY(-5px)}}.reveal .controls{display:none;position:absolute;top:auto;bottom:12px;right:12px;left:auto;z-index:11;color:#000;pointer-events:none;font-size:10px}.reveal .controls button{position:absolute;padding:0;background-color:transparent;border:0;outline:0;cursor:pointer;color:currentColor;transform:scale(.9999);transition:color .2s ease,opacity .2s ease,transform .2s ease;z-index:2;pointer-events:auto;font-size:inherit;visibility:hidden;opacity:0;-webkit-appearance:none;-webkit-tap-highlight-color:transparent}.reveal .controls .controls-arrow:after,.reveal .controls .controls-arrow:before{content:'';position:absolute;top:0;left:0;width:2.6em;height:.5em;border-radius:.25em;background-color:currentColor;transition:all .15s ease,background-color .8s ease;transform-origin:.2em 50%;will-change:transform}.reveal .controls .controls-arrow{position:relative;width:3.6em;height:3.6em}.reveal .controls .controls-arrow:before{transform:translateX(.5em) translateY(1.55em) rotate(45deg)}.reveal .controls .controls-arrow:after{transform:translateX(.5em) translateY(1.55em) rotate(-45deg)}.reveal .controls .controls-arrow:hover:before{transform:translateX(.5em) translateY(1.55em) rotate(40deg)}.reveal .controls .controls-arrow:hover:after{transform:translateX(.5em) translateY(1.55em) rotate(-40deg)}.reveal .controls .controls-arrow:active:before{transform:translateX(.5em) translateY(1.55em) rotate(36deg)}.reveal .controls .controls-arrow:active:after{transform:translateX(.5em) translateY(1.55em) rotate(-36deg)}.reveal .controls .navigate-left{right:6.4em;bottom:3.2em;transform:translateX(-10px)}.reveal .controls .navigate-left.highlight{animation:bounce-left 2s 50 both ease-out}.reveal .controls .navigate-right{right:0;bottom:3.2em;transform:translateX(10px)}.reveal .controls .navigate-right .controls-arrow{transform:rotate(180deg)}.reveal .controls .navigate-right.highlight{animation:bounce-right 2s 50 both ease-out}.reveal .controls .navigate-up{right:3.2em;bottom:6.4em;transform:translateY(-10px)}.reveal .controls .navigate-up .controls-arrow{transform:rotate(90deg)}.reveal .controls .navigate-down{right:3.2em;bottom:-1.4em;padding-bottom:1.4em;transform:translateY(10px)}.reveal .controls .navigate-down .controls-arrow{transform:rotate(-90deg)}.reveal .controls .navigate-down.highlight{animation:bounce-down 2s 50 both ease-out}.reveal .controls[data-controls-back-arrows=faded] .navigate-up.enabled{opacity:.3}.reveal .controls[data-controls-back-arrows=faded] .navigate-up.enabled:hover{opacity:1}.reveal .controls[data-controls-back-arrows=hidden] .navigate-up.enabled{opacity:0;visibility:hidden}.reveal .controls .enabled{visibility:visible;opacity:.9;cursor:pointer;transform:none}.reveal .controls .enabled.fragmented{opacity:.5}.reveal .controls .enabled.fragmented:hover,.reveal .controls .enabled:hover{opacity:1}.reveal:not(.rtl) .controls[data-controls-back-arrows=faded] .navigate-left.enabled{opacity:.3}.reveal:not(.rtl) .controls[data-controls-back-arrows=faded] .navigate-left.enabled:hover{opacity:1}.reveal:not(.rtl) .controls[data-controls-back-arrows=hidden] .navigate-left.enabled{opacity:0;visibility:hidden}.reveal.rtl .controls[data-controls-back-arrows=faded] .navigate-right.enabled{opacity:.3}.reveal.rtl .controls[data-controls-back-arrows=faded] .navigate-right.enabled:hover{opacity:1}.reveal.rtl .controls[data-controls-back-arrows=hidden] .navigate-right.enabled{opacity:0;visibility:hidden}.reveal[data-navigation-mode=linear].has-horizontal-slides .navigate-down,.reveal[data-navigation-mode=linear].has-horizontal-slides .navigate-up{display:none}.reveal:not(.has-vertical-slides) .controls .navigate-left,.reveal[data-navigation-mode=linear].has-horizontal-slides .navigate-left{bottom:1.4em;right:5.5em}.reveal:not(.has-vertical-slides) .controls .navigate-right,.reveal[data-navigation-mode=linear].has-horizontal-slides .navigate-right{bottom:1.4em;right:.5em}.reveal:not(.has-horizontal-slides) .controls .navigate-up{right:1.4em;bottom:5em}.reveal:not(.has-horizontal-slides) .controls .navigate-down{right:1.4em;bottom:.5em}.reveal.has-dark-background .controls{color:#fff}.reveal.has-light-background .controls{color:#000}.reveal.no-hover .controls .controls-arrow:active:before,.reveal.no-hover .controls .controls-arrow:hover:before{transform:translateX(.5em) translateY(1.55em) rotate(45deg)}.reveal.no-hover .controls .controls-arrow:active:after,.reveal.no-hover .controls .controls-arrow:hover:after{transform:translateX(.5em) translateY(1.55em) rotate(-45deg)}@media screen and (min-width:500px){.reveal .controls[data-controls-layout=edges]{top:0;right:0;bottom:0;left:0}.reveal .controls[data-controls-layout=edges] .navigate-down,.reveal .controls[data-controls-layout=edges] .navigate-left,.reveal .controls[data-controls-layout=edges] .navigate-right,.reveal .controls[data-controls-layout=edges] .navigate-up{bottom:auto;right:auto}.reveal .controls[data-controls-layout=edges] .navigate-left{top:50%;left:.8em;margin-top:-1.8em}.reveal .controls[data-controls-layout=edges] .navigate-right{top:50%;right:.8em;margin-top:-1.8em}.reveal .controls[data-controls-layout=edges] .navigate-up{top:.8em;left:50%;margin-left:-1.8em}.reveal .controls[data-controls-layout=edges] .navigate-down{bottom:-.3em;left:50%;margin-left:-1.8em}}.reveal .progress{position:absolute;display:none;height:3px;width:100%;bottom:0;left:0;z-index:10;background-color:rgba(0,0,0,.2);color:#fff}.reveal .progress:after{content:'';display:block;position:absolute;height:10px;width:100%;top:-10px}.reveal .progress span{display:block;height:100%;width:100%;background-color:currentColor;transition:transform .8s cubic-bezier(.26,.86,.44,.985);transform-origin:0 0;transform:scaleX(0)}.reveal .slide-number{position:absolute;display:block;right:8px;bottom:8px;z-index:31;font-family:Helvetica,sans-serif;font-size:12px;line-height:1;color:#fff;background-color:rgba(0,0,0,.4);padding:5px}.reveal .slide-number a{color:currentColor}.reveal .slide-number-delimiter{margin:0 3px}.reveal{position:relative;width:100%;height:100%;overflow:hidden;touch-action:pinch-zoom}.reveal.embedded{touch-action:pan-y}.reveal .slides{position:absolute;width:100%;height:100%;top:0;right:0;bottom:0;left:0;margin:auto;pointer-events:none;overflow:visible;z-index:1;text-align:center;perspective:600px;perspective-origin:50% 40%}.reveal .slides>section{perspective:600px}.reveal .slides>section,.reveal .slides>section>section{display:none;position:absolute;width:100%;pointer-events:auto;z-index:10;transform-style:flat;transition:transform-origin .8s cubic-bezier(.26,.86,.44,.985),transform .8s cubic-bezier(.26,.86,.44,.985),visibility .8s cubic-bezier(.26,.86,.44,.985),opacity .8s cubic-bezier(.26,.86,.44,.985)}.reveal[data-transition-speed=fast] .slides section{transition-duration:.4s}.reveal[data-transition-speed=slow] .slides section{transition-duration:1.2s}.reveal .slides section[data-transition-speed=fast]{transition-duration:.4s}.reveal .slides section[data-transition-speed=slow]{transition-duration:1.2s}.reveal .slides>section.stack{padding-top:0;padding-bottom:0;pointer-events:none;height:100%}.reveal .slides>section.present,.reveal .slides>section>section.present{display:block;z-index:11;opacity:1}.reveal .slides>section:empty,.reveal .slides>section>section:empty,.reveal .slides>section>section[data-background-interactive],.reveal .slides>section[data-background-interactive]{pointer-events:none}.reveal.center,.reveal.center .slides,.reveal.center .slides section{min-height:0!important}.reveal .slides>section:not(.present),.reveal .slides>section>section:not(.present){pointer-events:none}.reveal.overview .slides>section,.reveal.overview .slides>section>section{pointer-events:auto}.reveal .slides>section.future,.reveal .slides>section.past,.reveal .slides>section>section.future,.reveal .slides>section>section.past{opacity:0}.reveal.slide section{-webkit-backface-visibility:hidden;backface-visibility:hidden}.reveal .slides>section[data-transition=slide].past,.reveal .slides>section[data-transition~=slide-out].past,.reveal.slide .slides>section:not([data-transition]).past{transform:translate(-150%,0)}.reveal .slides>section[data-transition=slide].future,.reveal .slides>section[data-transition~=slide-in].future,.reveal.slide .slides>section:not([data-transition]).future{transform:translate(150%,0)}.reveal .slides>section>section[data-transition=slide].past,.reveal .slides>section>section[data-transition~=slide-out].past,.reveal.slide .slides>section>section:not([data-transition]).past{transform:translate(0,-150%)}.reveal .slides>section>section[data-transition=slide].future,.reveal .slides>section>section[data-transition~=slide-in].future,.reveal.slide .slides>section>section:not([data-transition]).future{transform:translate(0,150%)}.reveal.linear section{-webkit-backface-visibility:hidden;backface-visibility:hidden}.reveal .slides>section[data-transition=linear].past,.reveal .slides>section[data-transition~=linear-out].past,.reveal.linear .slides>section:not([data-transition]).past{transform:translate(-150%,0)}.reveal .slides>section[data-transition=linear].future,.reveal .slides>section[data-transition~=linear-in].future,.reveal.linear .slides>section:not([data-transition]).future{transform:translate(150%,0)}.reveal .slides>section>section[data-transition=linear].past,.reveal .slides>section>section[data-transition~=linear-out].past,.reveal.linear .slides>section>section:not([data-transition]).past{transform:translate(0,-150%)}.reveal .slides>section>section[data-transition=linear].future,.reveal .slides>section>section[data-transition~=linear-in].future,.reveal.linear .slides>section>section:not([data-transition]).future{transform:translate(0,150%)}.reveal .slides section[data-transition=default].stack,.reveal.default .slides section.stack{transform-style:preserve-3d}.reveal .slides>section[data-transition=default].past,.reveal .slides>section[data-transition~=default-out].past,.reveal.default .slides>section:not([data-transition]).past{transform:translate3d(-100%,0,0) rotateY(-90deg) translate3d(-100%,0,0)}.reveal .slides>section[data-transition=default].future,.reveal .slides>section[data-transition~=default-in].future,.reveal.default .slides>section:not([data-transition]).future{transform:translate3d(100%,0,0) rotateY(90deg) translate3d(100%,0,0)}.reveal .slides>section>section[data-transition=default].past,.reveal .slides>section>section[data-transition~=default-out].past,.reveal.default .slides>section>section:not([data-transition]).past{transform:translate3d(0,-300px,0) rotateX(70deg) translate3d(0,-300px,0)}.reveal .slides>section>section[data-transition=default].future,.reveal .slides>section>section[data-transition~=default-in].future,.reveal.default .slides>section>section:not([data-transition]).future{transform:translate3d(0,300px,0) rotateX(-70deg) translate3d(0,300px,0)}.reveal .slides section[data-transition=convex].stack,.reveal.convex .slides section.stack{transform-style:preserve-3d}.reveal .slides>section[data-transition=convex].past,.reveal .slides>section[data-transition~=convex-out].past,.reveal.convex .slides>section:not([data-transition]).past{transform:translate3d(-100%,0,0) rotateY(-90deg) translate3d(-100%,0,0)}.reveal .slides>section[data-transition=convex].future,.reveal .slides>section[data-transition~=convex-in].future,.reveal.convex .slides>section:not([data-transition]).future{transform:translate3d(100%,0,0) rotateY(90deg) translate3d(100%,0,0)}.reveal .slides>section>section[data-transition=convex].past,.reveal .slides>section>section[data-transition~=convex-out].past,.reveal.convex .slides>section>section:not([data-transition]).past{transform:translate3d(0,-300px,0) rotateX(70deg) translate3d(0,-300px,0)}.reveal .slides>section>section[data-transition=convex].future,.reveal .slides>section>section[data-transition~=convex-in].future,.reveal.convex .slides>section>section:not([data-transition]).future{transform:translate3d(0,300px,0) rotateX(-70deg) translate3d(0,300px,0)}.reveal .slides section[data-transition=concave].stack,.reveal.concave .slides section.stack{transform-style:preserve-3d}.reveal .slides>section[data-transition=concave].past,.reveal .slides>section[data-transition~=concave-out].past,.reveal.concave .slides>section:not([data-transition]).past{transform:translate3d(-100%,0,0) rotateY(90deg) translate3d(-100%,0,0)}.reveal .slides>section[data-transition=concave].future,.reveal .slides>section[data-transition~=concave-in].future,.reveal.concave .slides>section:not([data-transition]).future{transform:translate3d(100%,0,0) rotateY(-90deg) translate3d(100%,0,0)}.reveal .slides>section>section[data-transition=concave].past,.reveal .slides>section>section[data-transition~=concave-out].past,.reveal.concave .slides>section>section:not([data-transition]).past{transform:translate3d(0,-80%,0) rotateX(-70deg) translate3d(0,-80%,0)}.reveal .slides>section>section[data-transition=concave].future,.reveal .slides>section>section[data-transition~=concave-in].future,.reveal.concave .slides>section>section:not([data-transition]).future{transform:translate3d(0,80%,0) rotateX(70deg) translate3d(0,80%,0)}.reveal .slides section[data-transition=zoom],.reveal.zoom .slides section:not([data-transition]){transition-timing-function:ease}.reveal .slides>section[data-transition=zoom].past,.reveal .slides>section[data-transition~=zoom-out].past,.reveal.zoom .slides>section:not([data-transition]).past{visibility:hidden;transform:scale(16)}.reveal .slides>section[data-transition=zoom].future,.reveal .slides>section[data-transition~=zoom-in].future,.reveal.zoom .slides>section:not([data-transition]).future{visibility:hidden;transform:scale(.2)}.reveal .slides>section>section[data-transition=zoom].past,.reveal .slides>section>section[data-transition~=zoom-out].past,.reveal.zoom .slides>section>section:not([data-transition]).past{transform:scale(16)}.reveal .slides>section>section[data-transition=zoom].future,.reveal .slides>section>section[data-transition~=zoom-in].future,.reveal.zoom .slides>section>section:not([data-transition]).future{transform:scale(.2)}.reveal.cube .slides{perspective:1300px}.reveal.cube .slides section{padding:30px;min-height:700px;-webkit-backface-visibility:hidden;backface-visibility:hidden;box-sizing:border-box;transform-style:preserve-3d}.reveal.center.cube .slides section{min-height:0}.reveal.cube .slides section:not(.stack):before{content:'';position:absolute;display:block;width:100%;height:100%;left:0;top:0;background:rgba(0,0,0,.1);border-radius:4px;transform:translateZ(-20px)}.reveal.cube .slides section:not(.stack):after{content:'';position:absolute;display:block;width:90%;height:30px;left:5%;bottom:0;background:0 0;z-index:1;border-radius:4px;box-shadow:0 95px 25px rgba(0,0,0,.2);transform:translateZ(-90px) rotateX(65deg)}.reveal.cube .slides>section.stack{padding:0;background:0 0}.reveal.cube .slides>section.past{transform-origin:100% 0;transform:translate3d(-100%,0,0) rotateY(-90deg)}.reveal.cube .slides>section.future{transform-origin:0 0;transform:translate3d(100%,0,0) rotateY(90deg)}.reveal.cube .slides>section>section.past{transform-origin:0 100%;transform:translate3d(0,-100%,0) rotateX(90deg)}.reveal.cube .slides>section>section.future{transform-origin:0 0;transform:translate3d(0,100%,0) rotateX(-90deg)}.reveal.page .slides{perspective-origin:0 50%;perspective:3000px}.reveal.page .slides section{padding:30px;min-height:700px;box-sizing:border-box;transform-style:preserve-3d}.reveal.page .slides section.past{z-index:12}.reveal.page .slides section:not(.stack):before{content:'';position:absolute;display:block;width:100%;height:100%;left:0;top:0;background:rgba(0,0,0,.1);transform:translateZ(-20px)}.reveal.page .slides section:not(.stack):after{content:'';position:absolute;display:block;width:90%;height:30px;left:5%;bottom:0;background:0 0;z-index:1;border-radius:4px;box-shadow:0 95px 25px rgba(0,0,0,.2);-webkit-transform:translateZ(-90px) rotateX(65deg)}.reveal.page .slides>section.stack{padding:0;background:0 0}.reveal.page .slides>section.past{transform-origin:0 0;transform:translate3d(-40%,0,0) rotateY(-80deg)}.reveal.page .slides>section.future{transform-origin:100% 0;transform:translate3d(0,0,0)}.reveal.page .slides>section>section.past{transform-origin:0 0;transform:translate3d(0,-40%,0) rotateX(80deg)}.reveal.page .slides>section>section.future{transform-origin:0 100%;transform:translate3d(0,0,0)}.reveal .slides section[data-transition=fade],.reveal.fade .slides section:not([data-transition]),.reveal.fade .slides>section>section:not([data-transition]){transform:none;transition:opacity .5s}.reveal.fade.overview .slides section,.reveal.fade.overview .slides>section>section{transition:none}.reveal .slides section[data-transition=none],.reveal.none .slides section:not([data-transition]){transform:none;transition:none}.reveal .pause-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:#000;visibility:hidden;opacity:0;z-index:100;transition:all 1s ease}.reveal .pause-overlay .resume-button{position:absolute;bottom:20px;right:20px;color:#ccc;border-radius:2px;padding:6px 14px;border:2px solid #ccc;font-size:16px;background:0 0;cursor:pointer}.reveal .pause-overlay .resume-button:hover{color:#fff;border-color:#fff}.reveal.paused .pause-overlay{visibility:visible;opacity:1}.reveal .no-transition,.reveal .no-transition *,.reveal .slides.disable-slide-transitions section{transition:none!important}.reveal .slides.disable-slide-transitions section{transform:none!important}.reveal .backgrounds{position:absolute;width:100%;height:100%;top:0;left:0;perspective:600px}.reveal .slide-background{display:none;position:absolute;width:100%;height:100%;opacity:0;visibility:hidden;overflow:hidden;background-color:rgba(0,0,0,0);transition:all .8s cubic-bezier(.26,.86,.44,.985)}.reveal .slide-background-content{position:absolute;width:100%;height:100%;background-position:50% 50%;background-repeat:no-repeat;background-size:cover}.reveal .slide-background.stack{display:block}.reveal .slide-background.present{opacity:1;visibility:visible;z-index:2}.print-pdf .reveal .slide-background{opacity:1!important;visibility:visible!important}.reveal .slide-background video{position:absolute;width:100%;height:100%;max-width:none;max-height:none;top:0;left:0;-o-object-fit:cover;object-fit:cover}.reveal .slide-background[data-background-size=contain] video{-o-object-fit:contain;object-fit:contain}.reveal>.backgrounds .slide-background[data-background-transition=none],.reveal[data-background-transition=none]>.backgrounds .slide-background{transition:none}.reveal>.backgrounds .slide-background[data-background-transition=slide],.reveal[data-background-transition=slide]>.backgrounds .slide-background{opacity:1;-webkit-backface-visibility:hidden;backface-visibility:hidden}.reveal>.backgrounds .slide-background.past[data-background-transition=slide],.reveal[data-background-transition=slide]>.backgrounds .slide-background.past{transform:translate(-100%,0)}.reveal>.backgrounds .slide-background.future[data-background-transition=slide],.reveal[data-background-transition=slide]>.backgrounds .slide-background.future{transform:translate(100%,0)}.reveal>.backgrounds .slide-background>.slide-background.past[data-background-transition=slide],.reveal[data-background-transition=slide]>.backgrounds .slide-background>.slide-background.past{transform:translate(0,-100%)}.reveal>.backgrounds .slide-background>.slide-background.future[data-background-transition=slide],.reveal[data-background-transition=slide]>.backgrounds .slide-background>.slide-background.future{transform:translate(0,100%)}.reveal>.backgrounds .slide-background.past[data-background-transition=convex],.reveal[data-background-transition=convex]>.backgrounds .slide-background.past{opacity:0;transform:translate3d(-100%,0,0) rotateY(-90deg) translate3d(-100%,0,0)}.reveal>.backgrounds .slide-background.future[data-background-transition=convex],.reveal[data-background-transition=convex]>.backgrounds .slide-background.future{opacity:0;transform:translate3d(100%,0,0) rotateY(90deg) translate3d(100%,0,0)}.reveal>.backgrounds .slide-background>.slide-background.past[data-background-transition=convex],.reveal[data-background-transition=convex]>.backgrounds .slide-background>.slide-background.past{opacity:0;transform:translate3d(0,-100%,0) rotateX(90deg) translate3d(0,-100%,0)}.reveal>.backgrounds .slide-background>.slide-background.future[data-background-transition=convex],.reveal[data-background-transition=convex]>.backgrounds .slide-background>.slide-background.future{opacity:0;transform:translate3d(0,100%,0) rotateX(-90deg) translate3d(0,100%,0)}.reveal>.backgrounds .slide-background.past[data-background-transition=concave],.reveal[data-background-transition=concave]>.backgrounds .slide-background.past{opacity:0;transform:translate3d(-100%,0,0) rotateY(90deg) translate3d(-100%,0,0)}.reveal>.backgrounds .slide-background.future[data-background-transition=concave],.reveal[data-background-transition=concave]>.backgrounds .slide-background.future{opacity:0;transform:translate3d(100%,0,0) rotateY(-90deg) translate3d(100%,0,0)}.reveal>.backgrounds .slide-background>.slide-background.past[data-background-transition=concave],.reveal[data-background-transition=concave]>.backgrounds .slide-background>.slide-background.past{opacity:0;transform:translate3d(0,-100%,0) rotateX(-90deg) translate3d(0,-100%,0)}.reveal>.backgrounds .slide-background>.slide-background.future[data-background-transition=concave],.reveal[data-background-transition=concave]>.backgrounds .slide-background>.slide-background.future{opacity:0;transform:translate3d(0,100%,0) rotateX(90deg) translate3d(0,100%,0)}.reveal>.backgrounds .slide-background[data-background-transition=zoom],.reveal[data-background-transition=zoom]>.backgrounds .slide-background{transition-timing-function:ease}.reveal>.backgrounds .slide-background.past[data-background-transition=zoom],.reveal[data-background-transition=zoom]>.backgrounds .slide-background.past{opacity:0;visibility:hidden;transform:scale(16)}.reveal>.backgrounds .slide-background.future[data-background-transition=zoom],.reveal[data-background-transition=zoom]>.backgrounds .slide-background.future{opacity:0;visibility:hidden;transform:scale(.2)}.reveal>.backgrounds .slide-background>.slide-background.past[data-background-transition=zoom],.reveal[data-background-transition=zoom]>.backgrounds .slide-background>.slide-background.past{opacity:0;visibility:hidden;transform:scale(16)}.reveal>.backgrounds .slide-background>.slide-background.future[data-background-transition=zoom],.reveal[data-background-transition=zoom]>.backgrounds .slide-background>.slide-background.future{opacity:0;visibility:hidden;transform:scale(.2)}.reveal[data-transition-speed=fast]>.backgrounds .slide-background{transition-duration:.4s}.reveal[data-transition-speed=slow]>.backgrounds .slide-background{transition-duration:1.2s}.reveal [data-auto-animate-target^=unmatched]{will-change:opacity}.reveal section[data-auto-animate]:not(.stack):not([data-auto-animate=running]) [data-auto-animate-target^=unmatched]{opacity:0}.reveal.overview{perspective-origin:50% 50%;perspective:700px}.reveal.overview .slides{-moz-transform-style:preserve-3d}.reveal.overview .slides section{height:100%;top:0!important;opacity:1!important;overflow:hidden;visibility:visible!important;cursor:pointer;box-sizing:border-box}.reveal.overview .slides section.present,.reveal.overview .slides section:hover{outline:10px solid rgba(150,150,150,.4);outline-offset:10px}.reveal.overview .slides section .fragment{opacity:1;transition:none}.reveal.overview .slides section:after,.reveal.overview .slides section:before{display:none!important}.reveal.overview .slides>section.stack{padding:0;top:0!important;background:0 0;outline:0;overflow:visible}.reveal.overview .backgrounds{perspective:inherit;-moz-transform-style:preserve-3d}.reveal.overview .backgrounds .slide-background{opacity:1;visibility:visible;outline:10px solid rgba(150,150,150,.1);outline-offset:10px}.reveal.overview .backgrounds .slide-background.stack{overflow:visible}.reveal.overview .slides section,.reveal.overview-deactivating .slides section{transition:none}.reveal.overview .backgrounds .slide-background,.reveal.overview-deactivating .backgrounds .slide-background{transition:none}.reveal.rtl .slides,.reveal.rtl .slides h1,.reveal.rtl .slides h2,.reveal.rtl .slides h3,.reveal.rtl .slides h4,.reveal.rtl .slides h5,.reveal.rtl .slides h6{direction:rtl;font-family:sans-serif}.reveal.rtl code,.reveal.rtl pre{direction:ltr}.reveal.rtl ol,.reveal.rtl ul{text-align:right}.reveal.rtl .progress span{transform-origin:100% 0}.reveal.has-parallax-background .backgrounds{transition:all .8s ease}.reveal.has-parallax-background[data-transition-speed=fast] .backgrounds{transition-duration:.4s}.reveal.has-parallax-background[data-transition-speed=slow] .backgrounds{transition-duration:1.2s}.reveal>.overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1000;background:rgba(0,0,0,.9);transition:all .3s ease}.reveal>.overlay .spinner{position:absolute;display:block;top:50%;left:50%;width:32px;height:32px;margin:-16px 0 0 -16px;z-index:10;background-image:url(%2F%2F%2F6%2Bvr8nJybW1tcDAwOjo6Nvb26ioqKOjo7Ozs%2FLy8vz8%2FAAAAAAAAAAAACH%2FC05FVFNDQVBFMi4wAwEAAAAh%2FhpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh%2BQQJCgAAACwAAAAAIAAgAAAE5xDISWlhperN52JLhSSdRgwVo1ICQZRUsiwHpTJT4iowNS8vyW2icCF6k8HMMBkCEDskxTBDAZwuAkkqIfxIQyhBQBFvAQSDITM5VDW6XNE4KagNh6Bgwe60smQUB3d4Rz1ZBApnFASDd0hihh12BkE9kjAJVlycXIg7CQIFA6SlnJ87paqbSKiKoqusnbMdmDC2tXQlkUhziYtyWTxIfy6BE8WJt5YJvpJivxNaGmLHT0VnOgSYf0dZXS7APdpB309RnHOG5gDqXGLDaC457D1zZ%2FV%2FnmOM82XiHRLYKhKP1oZmADdEAAAh%2BQQJCgAAACwAAAAAIAAgAAAE6hDISWlZpOrNp1lGNRSdRpDUolIGw5RUYhhHukqFu8DsrEyqnWThGvAmhVlteBvojpTDDBUEIFwMFBRAmBkSgOrBFZogCASwBDEY%2FCZSg7GSE0gSCjQBMVG023xWBhklAnoEdhQEfyNqMIcKjhRsjEdnezB%2BA4k8gTwJhFuiW4dokXiloUepBAp5qaKpp6%2BHo7aWW54wl7obvEe0kRuoplCGepwSx2jJvqHEmGt6whJpGpfJCHmOoNHKaHx61WiSR92E4lbFoq%2BB6QDtuetcaBPnW6%2BO7wDHpIiK9SaVK5GgV543tzjgGcghAgAh%2BQQJCgAAACwAAAAAIAAgAAAE7hDISSkxpOrN5zFHNWRdhSiVoVLHspRUMoyUakyEe8PTPCATW9A14E0UvuAKMNAZKYUZCiBMuBakSQKG8G2FzUWox2AUtAQFcBKlVQoLgQReZhQlCIJesQXI5B0CBnUMOxMCenoCfTCEWBsJColTMANldx15BGs8B5wlCZ9Po6OJkwmRpnqkqnuSrayqfKmqpLajoiW5HJq7FL1Gr2mMMcKUMIiJgIemy7xZtJsTmsM4xHiKv5KMCXqfyUCJEonXPN2rAOIAmsfB3uPoAK%2B%2BG%2Bw48edZPK%2BM6hLJpQg484enXIdQFSS1u6UhksENEQAAIfkECQoAAAAsAAAAACAAIAAABOcQyEmpGKLqzWcZRVUQnZYg1aBSh2GUVEIQ2aQOE%2BG%2BcD4ntpWkZQj1JIiZIogDFFyHI0UxQwFugMSOFIPJftfVAEoZLBbcLEFhlQiqGp1Vd140AUklUN3eCA51C1EWMzMCezCBBmkxVIVHBWd3HHl9JQOIJSdSnJ0TDKChCwUJjoWMPaGqDKannasMo6WnM562R5YluZRwur0wpgqZE7NKUm%2BFNRPIhjBJxKZteWuIBMN4zRMIVIhffcgojwCF117i4nlLnY5ztRLsnOk%2BaV%2BoJY7V7m76PdkS4trKcdg0Zc0tTcKkRAAAIfkECQoAAAAsAAAAACAAIAAABO4QyEkpKqjqzScpRaVkXZWQEximw1BSCUEIlDohrft6cpKCk5xid5MNJTaAIkekKGQkWyKHkvhKsR7ARmitkAYDYRIbUQRQjWBwJRzChi9CRlBcY1UN4g0%2FVNB0AlcvcAYHRyZPdEQFYV8ccwR5HWxEJ02YmRMLnJ1xCYp0Y5idpQuhopmmC2KgojKasUQDk5BNAwwMOh2RtRq5uQuPZKGIJQIGwAwGf6I0JXMpC8C7kXWDBINFMxS4DKMAWVWAGYsAdNqW5uaRxkSKJOZKaU3tPOBZ4DuK2LATgJhkPJMgTwKCdFjyPHEnKxFCDhEAACH5BAkKAAAALAAAAAAgACAAAATzEMhJaVKp6s2nIkolIJ2WkBShpkVRWqqQrhLSEu9MZJKK9y1ZrqYK9WiClmvoUaF8gIQSNeF1Er4MNFn4SRSDARWroAIETg1iVwuHjYB1kYc1mwruwXKC9gmsJXliGxc%2BXiUCby9ydh1sOSdMkpMTBpaXBzsfhoc5l58Gm5yToAaZhaOUqjkDgCWNHAULCwOLaTmzswadEqggQwgHuQsHIoZCHQMMQgQGubVEcxOPFAcMDAYUA85eWARmfSRQCdcMe0zeP1AAygwLlJtPNAAL19DARdPzBOWSm1brJBi45soRAWQAAkrQIykShQ9wVhHCwCQCACH5BAkKAAAALAAAAAAgACAAAATrEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq%2BE71SRQeyqUToLA7VxF0JDyIQh%2FMVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiRMDjI0Fd30%2FiI2UA5GSS5UDj2l6NoqgOgN4gksEBgYFf0FDqKgHnyZ9OX8HrgYHdHpcHQULXAS2qKpENRg7eAMLC7kTBaixUYFkKAzWAAnLC7FLVxLWDBLKCwaKTULgEwbLA4hJtOkSBNqITT3xEgfLpBtzE%2FjiuL04RGEBgwWhShRgQExHBAAh%2BQQJCgAAACwAAAAAIAAgAAAE7xDISWlSqerNpyJKhWRdlSAVoVLCWk6JKlAqAavhO9UkUHsqlE6CwO1cRdCQ8iEIfzFVTzLdRAmZX3I2SfZiCqGk5dTESJeaOAlClzsJsqwiJwiqnFrb2nS9kmIcgEsjQydLiIlHehhpejaIjzh9eomSjZR%2BipslWIRLAgMDOR2DOqKogTB9pCUJBagDBXR6XB0EBkIIsaRsGGMMAxoDBgYHTKJiUYEGDAzHC9EACcUGkIgFzgwZ0QsSBcXHiQvOwgDdEwfFs0sDzt4S6BK4xYjkDOzn0unFeBzOBijIm1Dgmg5YFQwsCMjp1oJ8LyIAACH5BAkKAAAALAAAAAAgACAAAATwEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq%2BE71SRQeyqUToLA7VxF0JDyIQh%2FMVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiUd6GGl6NoiPOH16iZKNlH6KmyWFOggHhEEvAwwMA0N9GBsEC6amhnVcEwavDAazGwIDaH1ipaYLBUTCGgQDA8NdHz0FpqgTBwsLqAbWAAnIA4FWKdMLGdYGEgraigbT0OITBcg5QwPT4xLrROZL6AuQAPUS7bxLpoWidY0JtxLHKhwwMJBTHgPKdEQAACH5BAkKAAAALAAAAAAgACAAAATrEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq%2BE71SRQeyqUToLA7VxF0JDyIQh%2FMVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiUd6GAULDJCRiXo1CpGXDJOUjY%2BYip9DhToJA4RBLwMLCwVDfRgbBAaqqoZ1XBMHswsHtxtFaH1iqaoGNgAIxRpbFAgfPQSqpbgGBqUD1wBXeCYp1AYZ19JJOYgH1KwA4UBvQwXUBxPqVD9L3sbp2BNk2xvvFPJd%2BMFCN6HAAIKgNggY0KtEBAAh%2BQQJCgAAACwAAAAAIAAgAAAE6BDISWlSqerNpyJKhWRdlSAVoVLCWk6JKlAqAavhO9UkUHsqlE6CwO1cRdCQ8iEIfzFVTzLdRAmZX3I2SfYIDMaAFdTESJeaEDAIMxYFqrOUaNW4E4ObYcCXaiBVEgULe0NJaxxtYksjh2NLkZISgDgJhHthkpU4mW6blRiYmZOlh4JWkDqILwUGBnE6TYEbCgevr0N1gH4At7gHiRpFaLNrrq8HNgAJA70AWxQIH1%2BvsYMDAzZQPC9VCNkDWUhGkuE5PxJNwiUK4UfLzOlD4WvzAHaoG9nxPi5d%2BjYUqfAhhykOFwJWiAAAIfkECQoAAAAsAAAAACAAIAAABPAQyElpUqnqzaciSoVkXVUMFaFSwlpOCcMYlErAavhOMnNLNo8KsZsMZItJEIDIFSkLGQoQTNhIsFehRww2CQLKF0tYGKYSg%2BygsZIuNqJksKgbfgIGepNo2cIUB3V1B3IvNiBYNQaDSTtfhhx0CwVPI0UJe0%2Bbm4g5VgcGoqOcnjmjqDSdnhgEoamcsZuXO1aWQy8KAwOAuTYYGwi7w5h%2BKr0SJ8MFihpNbx%2B4Erq7BYBuzsdiH1jCAzoSfl0rVirNbRXlBBlLX%2BBP0XJLAPGzTkAuAOqb0WT5AH7OcdCm5B8TgRwSRKIHQtaLCwg1RAAAOwAAAAAAAAAAAA%3D%3D);visibility:visible;opacity:.6;transition:all .3s ease}.reveal>.overlay header{position:absolute;left:0;top:0;width:100%;padding:5px;z-index:2;box-sizing:border-box}.reveal>.overlay header a{display:inline-block;width:40px;height:40px;line-height:36px;padding:0 10px;float:right;opacity:.6;box-sizing:border-box}.reveal>.overlay header a:hover{opacity:1}.reveal>.overlay header a .icon{display:inline-block;width:20px;height:20px;background-position:50% 50%;background-size:100%;background-repeat:no-repeat}.reveal>.overlay header a.close .icon{background-image:url()}.reveal>.overlay header a.external .icon{background-image:url()}.reveal>.overlay .viewport{position:absolute;display:flex;top:50px;right:0;bottom:0;left:0}.reveal>.overlay.overlay-preview .viewport iframe{width:100%;height:100%;max-width:100%;max-height:100%;border:0;opacity:0;visibility:hidden;transition:all .3s ease}.reveal>.overlay.overlay-preview.loaded .viewport iframe{opacity:1;visibility:visible}.reveal>.overlay.overlay-preview.loaded .viewport-inner{position:absolute;z-index:-1;left:0;top:45%;width:100%;text-align:center;letter-spacing:normal}.reveal>.overlay.overlay-preview .x-frame-error{opacity:0;transition:opacity .3s ease .3s}.reveal>.overlay.overlay-preview.loaded .x-frame-error{opacity:1}.reveal>.overlay.overlay-preview.loaded .spinner{opacity:0;visibility:hidden;transform:scale(.2)}.reveal>.overlay.overlay-help .viewport{overflow:auto;color:#fff}.reveal>.overlay.overlay-help .viewport .viewport-inner{width:600px;margin:auto;padding:20px 20px 80px 20px;text-align:center;letter-spacing:normal}.reveal>.overlay.overlay-help .viewport .viewport-inner .title{font-size:20px}.reveal>.overlay.overlay-help .viewport .viewport-inner table{border:1px solid #fff;border-collapse:collapse;font-size:16px}.reveal>.overlay.overlay-help .viewport .viewport-inner table td,.reveal>.overlay.overlay-help .viewport .viewport-inner table th{width:200px;padding:14px;border:1px solid #fff;vertical-align:middle}.reveal>.overlay.overlay-help .viewport .viewport-inner table th{padding-top:20px;padding-bottom:20px}.reveal .playback{position:absolute;left:15px;bottom:20px;z-index:30;cursor:pointer;transition:all .4s ease;-webkit-tap-highlight-color:transparent}.reveal.overview .playback{opacity:0;visibility:hidden}.reveal .hljs{min-height:100%}.reveal .hljs table{margin:initial}.reveal .hljs-ln-code,.reveal .hljs-ln-numbers{padding:0;border:0}.reveal .hljs-ln-numbers{opacity:.6;padding-right:.75em;text-align:right;vertical-align:top}.reveal .hljs.has-highlights tr:not(.highlight-line){opacity:.4}.reveal .hljs:not(:first-child).fragment{position:absolute;top:0;left:0;width:100%;box-sizing:border-box}.reveal pre[data-auto-animate-target]{overflow:hidden}.reveal pre[data-auto-animate-target] code{height:100%}.reveal .roll{display:inline-block;line-height:1.2;overflow:hidden;vertical-align:top;perspective:400px;perspective-origin:50% 50%}.reveal .roll:hover{background:0 0;text-shadow:none}.reveal .roll span{display:block;position:relative;padding:0 2px;pointer-events:none;transition:all .4s ease;transform-origin:50% 0;transform-style:preserve-3d;-webkit-backface-visibility:hidden;backface-visibility:hidden}.reveal .roll:hover span{background:rgba(0,0,0,.5);transform:translate3d(0,0,-45px) rotateX(90deg)}.reveal .roll span:after{content:attr(data-title);display:block;position:absolute;left:0;top:0;padding:0 2px;-webkit-backface-visibility:hidden;backface-visibility:hidden;transform-origin:50% 0;transform:translate3d(0,110%,0) rotateX(-90deg)}.reveal aside.notes{display:none}.reveal .speaker-notes{display:none;position:absolute;width:33.33333%;height:100%;top:0;left:100%;padding:14px 18px 14px 18px;z-index:1;font-size:18px;line-height:1.4;border:1px solid rgba(0,0,0,.05);color:#222;background-color:#f5f5f5;overflow:auto;box-sizing:border-box;text-align:left;font-family:Helvetica,sans-serif;-webkit-overflow-scrolling:touch}.reveal .speaker-notes .notes-placeholder{color:#ccc;font-style:italic}.reveal .speaker-notes:focus{outline:0}.reveal .speaker-notes:before{content:'Speaker notes';display:block;margin-bottom:10px;opacity:.5}.reveal.show-notes{max-width:75%;overflow:visible}.reveal.show-notes .speaker-notes{display:block}@media screen and (min-width:1600px){.reveal .speaker-notes{font-size:20px}}@media screen and (max-width:1024px){.reveal.show-notes{border-left:0;max-width:none;max-height:70%;max-height:70vh;overflow:visible}.reveal.show-notes .speaker-notes{top:100%;left:0;width:100%;height:42.85714%;height:30vh;border:0}}@media screen and (max-width:600px){.reveal.show-notes{max-height:60%;max-height:60vh}.reveal.show-notes .speaker-notes{top:100%;height:66.66667%;height:40vh}.reveal .speaker-notes{font-size:14px}}.zoomed .reveal *,.zoomed .reveal :after,.zoomed .reveal :before{-webkit-backface-visibility:visible!important;backface-visibility:visible!important}.zoomed .reveal .controls,.zoomed .reveal .progress{opacity:0}.zoomed .reveal .roll span{background:0 0}.zoomed .reveal .roll span:after{visibility:hidden}html.print-pdf *{-webkit-print-color-adjust:exact}html.print-pdf{width:100%;height:100%;overflow:visible}html.print-pdf body{margin:0 auto!important;border:0;padding:0;float:none!important;overflow:visible}html.print-pdf .nestedarrow,html.print-pdf .reveal .controls,html.print-pdf .reveal .playback,html.print-pdf .reveal .progress,html.print-pdf .reveal.overview,html.print-pdf .state-background{display:none!important}html.print-pdf .reveal pre code{overflow:hidden!important;font-family:Courier,'Courier New',monospace!important}html.print-pdf .reveal{width:auto!important;height:auto!important;overflow:hidden!important}html.print-pdf .reveal .slides{position:static;width:100%!important;height:auto!important;zoom:1!important;pointer-events:initial;left:auto;top:auto;margin:0!important;padding:0!important;overflow:visible;display:block;perspective:none;perspective-origin:50% 50%}html.print-pdf .reveal .slides .pdf-page{position:relative;overflow:hidden;z-index:1;page-break-after:always}html.print-pdf .reveal .slides section{visibility:visible!important;display:block!important;position:absolute!important;margin:0!important;padding:0!important;box-sizing:border-box!important;min-height:1px;opacity:1!important;transform-style:flat!important;transform:none!important}html.print-pdf .reveal section.stack{position:relative!important;margin:0!important;padding:0!important;page-break-after:avoid!important;height:auto!important;min-height:auto!important}html.print-pdf .reveal img{box-shadow:none}html.print-pdf .reveal .backgrounds{display:none}html.print-pdf .reveal .slide-background{display:block!important;position:absolute;top:0;left:0;width:100%;height:100%;z-index:auto!important}html.print-pdf .reveal.show-notes{max-width:none;max-height:none}html.print-pdf .reveal .speaker-notes-pdf{display:block;width:100%;height:auto;max-height:none;top:auto;right:auto;bottom:auto;left:auto;z-index:100}html.print-pdf .reveal .speaker-notes-pdf[data-layout=separate-page]{position:relative;color:inherit;background-color:transparent;padding:20px;page-break-after:always;border:0}html.print-pdf .reveal .slide-number-pdf{display:block;position:absolute;font-size:14px}html.print-pdf .aria-status{display:none}@media print{html:not(.print-pdf){background:#fff;width:auto;height:auto;overflow:visible}html:not(.print-pdf) body{background:#fff;font-size:20pt;width:auto;height:auto;border:0;margin:0 5%;padding:0;overflow:visible;float:none!important}html:not(.print-pdf) .controls,html:not(.print-pdf) .fork-reveal,html:not(.print-pdf) .nestedarrow,html:not(.print-pdf) .reveal .backgrounds,html:not(.print-pdf) .reveal .progress,html:not(.print-pdf) .reveal .slide-number,html:not(.print-pdf) .share-reveal,html:not(.print-pdf) .state-background{display:none!important}html:not(.print-pdf) body,html:not(.print-pdf) li,html:not(.print-pdf) p,html:not(.print-pdf) td{font-size:20pt!important;color:#000}html:not(.print-pdf) h1,html:not(.print-pdf) h2,html:not(.print-pdf) h3,html:not(.print-pdf) h4,html:not(.print-pdf) h5,html:not(.print-pdf) h6{color:#000!important;height:auto;line-height:normal;text-align:left;letter-spacing:normal}html:not(.print-pdf) h1{font-size:28pt!important}html:not(.print-pdf) h2{font-size:24pt!important}html:not(.print-pdf) h3{font-size:22pt!important}html:not(.print-pdf) h4{font-size:22pt!important;font-variant:small-caps}html:not(.print-pdf) h5{font-size:21pt!important}html:not(.print-pdf) h6{font-size:20pt!important;font-style:italic}html:not(.print-pdf) a:link,html:not(.print-pdf) a:visited{color:#000!important;font-weight:700;text-decoration:underline}html:not(.print-pdf) div,html:not(.print-pdf) ol,html:not(.print-pdf) p,html:not(.print-pdf) ul{visibility:visible;position:static;width:auto;height:auto;display:block;overflow:visible;margin:0;text-align:left!important}html:not(.print-pdf) .reveal pre,html:not(.print-pdf) .reveal table{margin-left:0;margin-right:0}html:not(.print-pdf) .reveal pre code{padding:20px}html:not(.print-pdf) .reveal blockquote{margin:20px 0}html:not(.print-pdf) .reveal .slides{position:static!important;width:auto!important;height:auto!important;left:0!important;top:0!important;margin-left:0!important;margin-top:0!important;padding:0!important;zoom:1!important;transform:none!important;overflow:visible!important;display:block!important;text-align:left!important;perspective:none;perspective-origin:50% 50%}html:not(.print-pdf) .reveal .slides section{visibility:visible!important;position:static!important;width:auto!important;height:auto!important;display:block!important;overflow:visible!important;left:0!important;top:0!important;margin-left:0!important;margin-top:0!important;padding:60px 20px!important;z-index:auto!important;opacity:1!important;page-break-after:always!important;transform-style:flat!important;transform:none!important;transition:none!important}html:not(.print-pdf) .reveal .slides section.stack{padding:0!important}html:not(.print-pdf) .reveal section:last-of-type{page-break-after:avoid!important}html:not(.print-pdf) .reveal section .fragment{opacity:1!important;visibility:visible!important;transform:none!important}html:not(.print-pdf) .reveal section img{display:block;margin:15px 0;background:#fff;border:1px solid #666;box-shadow:none}html:not(.print-pdf) .reveal section small{font-size:.8em}html:not(.print-pdf) .reveal .hljs{max-height:100%;white-space:pre-wrap;word-wrap:break-word;word-break:break-word;font-size:15pt}html:not(.print-pdf) .reveal .hljs .hljs-ln-numbers{white-space:nowrap}html:not(.print-pdf) .reveal .hljs td{font-size:inherit!important;color:inherit!important}}
      
      </style>
      
        <script type="text/x-mathjax-config">
          MathJax.Hub.Config({"extensions":["tex2jax.js"],"jax":["input/TeX","output/HTML-CSS"],"messageStyle":"none","tex2jax":{"processEnvironments":false,"processEscapes":true,"inlineMath":[["$","$"],["\\(","\\)"]],"displayMath":[["$$","$$"],["\\[","\\]"]],"skipTags":["script","noscript","style","textarea","pre","code"]},"displayAlign":"left","displayIndent":"0.05rem","TeX":{"equationNumbers":{"autoNumber":"none","useLabelIds":true},"extensions":["AMSmath.js","AMSsymbols.js","noErrors.js","noUndefined.js","action.js","cancel.js","enclose.js","mhchem.js","extpfeil.js"],"Macros":{"zerov":"{\\boldsymbol 0}","onev":"{\\boldsymbol 1}","av":"{\\boldsymbol a}","bv":"{\\boldsymbol b}","cv":"{\\boldsymbol c}","dv":"{\\boldsymbol d}","ev":"{\\boldsymbol e}","fv":"{\\boldsymbol f}","gv":"{\\boldsymbol g}","hv":"{\\boldsymbol h}","iv":"{\\boldsymbol i}","jv":"{\\boldsymbol j}","kv":"{\\boldsymbol k}","lv":"{\\boldsymbol l}","mv":"{\\boldsymbol m}","nv":"{\\boldsymbol n}","ov":"{\\boldsymbol o}","pv":"{\\boldsymbol p}","qv":"{\\boldsymbol q}","rv":"{\\boldsymbol r}","sv":"{\\boldsymbol s}","tv":"{\\boldsymbol t}","uv":"{\\boldsymbol u}","vv":"{\\boldsymbol v}","wv":"{\\boldsymbol w}","xv":"{\\boldsymbol x}","yv":"{\\boldsymbol y}","zv":"{\\boldsymbol z}","Av":"{\\mathbf A}","Bv":"{\\mathbf B}","Cv":"{\\mathbf C}","Dv":"{\\mathbf D}","Ev":"{\\mathbf E}","Fv":"{\\mathbf F}","Gv":"{\\mathbf G}","Hv":"{\\mathbf H}","Iv":"{\\mathbf I}","Jv":"{\\mathbf J}","Kv":"{\\mathbf K}","Lv":"{\\mathbf L}","Mv":"{\\mathbf M}","Nv":"{\\mathbf N}","Ov":"{\\mathbf O}","Pv":"{\\mathbf P}","Qv":"{\\mathbf Q}","Rv":"{\\mathbf R}","Sv":"{\\mathbf S}","Tv":"{\\mathbf T}","Uv":"{\\mathbf U}","Vv":"{\\mathbf V}","Wv":"{\\mathbf W}","Xv":"{\\mathbf X}","Yv":"{\\mathbf Y}","Zv":"{\\mathbf Z}","alphav":"{\\boldsymbol {\\alpha}}","betav":"{\\boldsymbol {\\beta}}","lambdav":"{\\boldsymbol {\\lambda}}","muv":"{\\boldsymbol {\\mu}}","thetav":"{\\boldsymbol {\\theta}}","phiv":"{\\boldsymbol {\\phi}}","zetav":"{\\boldsymbol {\\zeta}}","deltav":"{\\boldsymbol {\\delta}}","Sigmav":"{\\boldsymbol {\\Sigma}}","Phiv":"{\\boldsymbol {\\Phi}}","Lambdav":"{\\boldsymbol {\\Lambda}}","Omegav":"{\\boldsymbol {\\Omega}}","Cbb":"{\\mathbb C}","Ebb":"{\\mathbb E}","Hbb":"{\\mathbb H}","Nbb":"{\\mathbb N}","Pbb":"{\\mathbb P}","Qbb":"{\\mathbb Q}","Rbb":"{\\mathbb R}","Zbb":"{\\mathbb Z}","Acal":"{\\mathcal A}","Bcal":"{\\mathcal B}","Ccal":"{\\mathcal C}","Dcal":"{\\mathcal D}","Ecal":"{\\mathcal E}","Fcal":"{\\mathcal F}","Gcal":"{\\mathcal G}","Hcal":"{\\mathcal H}","Ical":"{\\mathcal I}","Lcal":"{\\mathcal L}","Mcal":"{\\mathcal M}","Ncal":"{\\mathcal N}","Pcal":"{\\mathcal P}","Rcal":"{\\mathcal R}","Scal":"{\\mathcal S}","Ucal":"{\\mathcal U}","Vcal":"{\\mathcal V}","Wcal":"{\\mathcal W}","Xcal":"{\\mathcal X}","Ycal":"{\\mathcal Y}","fhat":"{\\hat f}","yhat":"{\\hat y}","yvhat":"{\\hat {\\yv}}","Xvhat":"{\\hat {\\Xv}}","wvt":"{\\tilde {\\wv}}","xvt":"{\\tilde {\\xv}}","yvt":"{\\tilde {\\yv}}","Kvt":"{\\tilde {\\Kv}}","xbar":"{\\bar {x}}","ybar":"{\\bar {y}}","yvbar":"{\\bar {\\yv}}","Ffrak":"{\\mathfrak F}","sup":["{{(#1)}}",1],"diff":"{\\mathrm {d}}","diag":"{\\mathrm {diag}}","span":"{\\mathrm {span}}","sign":"{\\mathrm {sign}}","sgn":"{\\mathrm {sgn}}","st":"{\\mathrm {s.t.}}","VC":"{\\mathrm {VC}}","Pr":"{\\mathrm {Pr}}","tanh":"{\\mathrm {Tanh}}","relu":"{\\mathrm {ReLU}}","lrelu":"{\\mathrm {LeakyReLU}}","prelu":"{\\mathrm {PReLU}}","elu":"{\\mathrm {ELU}}","softplus":"{\\mathrm {Softplus}}","swish":"{\\mathrm {Swish}}","maxout":"{\\mathrm {Maxout}}","const":"{\\mathrm {const}}","cov":"{\\mathrm {cov}}","grad":"{\\mathrm {grad}}","div":"{\\mathrm {div}}","var":"{\\mathrm {var}}","softmax":"{\\mathrm {Softmax}}","att":"{\\mathrm {att}}","cut":"{\\mathrm {cut}}","rcut":"{\\mathrm {RatioCut}}","ncut":"{\\mathrm {NCut}}","tr":"{\\mathrm {tr}}","vol":"{\\mathrm {vol}}","mlp":"{\\mathrm {MLP}}","update":"{\\mathrm {Update}}","aggregate":"{\\mathrm {Aggregate}}","self":"{\\mathrm {self}}","set":"{\\mathrm {set}}","neigh":"{\\mathrm {neigh}}","base":"{\\mathrm {base}}","NULL":"{\\mathrm {NULL}}","new":"{\\mathrm {new}}","gru":"{\\mathrm {GRU}}","lstm":"{\\mathrm {LSTM}}","edge":"{\\mathrm {edge}}","node":"{\\mathrm {node}}","graph":"{\\mathrm {graph}}","train":"{\\mathrm {train}}","dec":"{\\mathrm {Dec}}","sym":"{\\mathrm {sym}}","modd":"{\\mathrm {mod} ~ }","hp":"{\\mathrm {hp}}","gen":"{\\mathrm {gen}}","rot":"{\\mathbf {rot180}}","up":"{\\mathbf {up}}","cen":"{\\mathrm {cen}}","con":"{\\mathrm {con}}","argmin":"{\\mathop{\\mathrm{argmin}}}","argmax":"{\\mathop{\\mathrm{argmax}}}"}},"HTML-CSS":{"linebreaks":{"automatic":false},"scale":100,"styles":{".MathJax_Display":{"margin":"0.6rem auto 1rem 0 !important","border-radius":"0px !important","font-size":"1.8rem !important","color":"#d33682","text-align":"left !important"},".MathJax":{"margin-left":"0.2rem !important","margin-right":"0rem !important","border":"0px solid #ccc !important","color":"#d33682"}},"availableFonts":["TeX"]}});
        </script>
        <script type="text/javascript" async="" src="../common/js/mathjax/MathJax.js" charset="UTF-8"></script>
        
      
      
      
        <script src="../common/js/head.min.js"></script>
        <script src="../common/js/reveal.js"></script>
      <script type="text/javascript" src="../common/js/mermaid/mermaid.min.js" charset="UTF-8"></script>
      
      
      
      
      
      <style>
      /**
 * prism.js Github theme based on GitHub's theme.
 * @author Sam Clarke
 */
code[class*="language-"],
pre[class*="language-"] {
  color: #333;
  background: none;
  font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace;
  text-align: left;
  white-space: pre;
  word-spacing: normal;
  word-break: normal;
  word-wrap: normal;
  line-height: 1.4;

  -moz-tab-size: 8;
  -o-tab-size: 8;
  tab-size: 8;

  -webkit-hyphens: none;
  -moz-hyphens: none;
  -ms-hyphens: none;
  hyphens: none;
}

/* Code blocks */
pre[class*="language-"] {
  padding: .8em;
  overflow: auto;
  /* border: 1px solid #ddd; */
  border-radius: 3px;
  /* background: #fff; */
  background: #f5f5f5;
}

/* Inline code */
:not(pre) > code[class*="language-"] {
  padding: .1em;
  border-radius: .3em;
  white-space: normal;
  background: #f5f5f5;
}

.token.comment,
.token.blockquote {
  color: #969896;
}

.token.cdata {
  color: #183691;
}

.token.doctype,
.token.punctuation,
.token.variable,
.token.macro.property {
  color: #333;
}

.token.operator,
.token.important,
.token.keyword,
.token.rule,
.token.builtin {
  color: #a71d5d;
}

.token.string,
.token.url,
.token.regex,
.token.attr-value {
  color: #183691;
}

.token.property,
.token.number,
.token.boolean,
.token.entity,
.token.atrule,
.token.constant,
.token.symbol,
.token.command,
.token.code {
  color: #0086b3;
}

.token.tag,
.token.selector,
.token.prolog {
  color: #63a35c;
}

.token.function,
.token.namespace,
.token.pseudo-element,
.token.class,
.token.class-name,
.token.pseudo-class,
.token.id,
.token.url-reference .token.variable,
.token.attr-name {
  color: #795da3;
}

.token.entity {
  cursor: help;
}

.token.title,
.token.title .token.punctuation {
  font-weight: bold;
  color: #1d3e81;
}

.token.list {
  color: #ed6a43;
}

.token.inserted {
  background-color: #eaffea;
  color: #55a532;
}

.token.deleted {
  background-color: #ffecec;
  color: #bd2c00;
}

.token.bold {
  font-weight: bold;
}

.token.italic {
  font-style: italic;
}


/* JSON */
.language-json .token.property {
  color: #183691;
}

.language-markup .token.tag .token.punctuation {
  color: #333;
}

/* CSS */
code.language-css,
.language-css .token.function {
  color: #0086b3;
}

/* YAML */
.language-yaml .token.atrule {
  color: #63a35c;
}

code.language-yaml {
  color: #183691;
}

/* Ruby */
.language-ruby .token.function {
  color: #333;
}

/* Markdown */
.language-markdown .token.url {
  color: #795da3;
}

/* Makefile */
.language-makefile .token.symbol {
  color: #795da3;
}

.language-makefile .token.variable {
  color: #183691;
}

.language-makefile .token.builtin {
  color: #0086b3;
}

/* Bash */
.language-bash .token.keyword {
  color: #0086b3;
}

/* highlight */
pre[data-line] {
  position: relative;
  padding: 1em 0 1em 3em;
}
pre[data-line] .line-highlight-wrapper {
  position: absolute;
  top: 0;
  left: 0;
  background-color: transparent;
  display: block;
  width: 100%;
}

pre[data-line] .line-highlight {
  position: absolute;
  left: 0;
  right: 0;
  padding: inherit 0;
  margin-top: 1em;
  background: hsla(24, 20%, 50%,.08);
  background: linear-gradient(to right, hsla(24, 20%, 50%,.1) 70%, hsla(24, 20%, 50%,0));
  pointer-events: none;
  line-height: inherit;
  white-space: pre;
}

pre[data-line] .line-highlight:before, 
pre[data-line] .line-highlight[data-end]:after {
  content: attr(data-start);
  position: absolute;
  top: .4em;
  left: .6em;
  min-width: 1em;
  padding: 0 .5em;
  background-color: hsla(24, 20%, 50%,.4);
  color: hsl(24, 20%, 95%);
  font: bold 65%/1.5 sans-serif;
  text-align: center;
  vertical-align: .3em;
  border-radius: 999px;
  text-shadow: none;
  box-shadow: 0 1px white;
}

pre[data-line] .line-highlight[data-end]:after {
  content: attr(data-end);
  top: auto;
  bottom: .4em;
}.markdown-preview{width:100%;height:100%;box-sizing:border-box}.markdown-preview .pagebreak,.markdown-preview .newpage{page-break-before:always}.markdown-preview pre.line-numbers{position:relative;padding-left:3.8em;counter-reset:linenumber}.markdown-preview pre.line-numbers>code{position:relative}.markdown-preview pre.line-numbers .line-numbers-rows{position:absolute;pointer-events:none;top:1em;font-size:100%;left:0;width:3em;letter-spacing:-1px;border-right:1px solid #999;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.markdown-preview pre.line-numbers .line-numbers-rows>span{pointer-events:none;display:block;counter-increment:linenumber}.markdown-preview pre.line-numbers .line-numbers-rows>span:before{content:counter(linenumber);color:#999;display:block;padding-right:.8em;text-align:right}.markdown-preview .mathjax-exps .MathJax_Display{text-align:center !important}.markdown-preview:not([for="preview"]) .code-chunk .btn-group{display:none}.markdown-preview:not([for="preview"]) .code-chunk .status{display:none}.markdown-preview:not([for="preview"]) .code-chunk .output-div{margin-bottom:16px}.scrollbar-style::-webkit-scrollbar{width:8px}.scrollbar-style::-webkit-scrollbar-track{border-radius:10px;background-color:transparent}.scrollbar-style::-webkit-scrollbar-thumb{border-radius:5px;background-color:rgba(150,150,150,0.66);border:4px solid rgba(150,150,150,0.66);background-clip:content-box}html body[for="html-export"]:not([data-presentation-mode]){position:relative;width:100%;height:100%;top:0;left:0;margin:0;padding:0;overflow:auto}html body[for="html-export"]:not([data-presentation-mode]) .markdown-preview{position:relative;top:0}@media screen and (min-width:914px){html body[for="html-export"]:not([data-presentation-mode]) .markdown-preview{padding:2em calc(50% - 457px + 2em)}}@media screen and (max-width:914px){html body[for="html-export"]:not([data-presentation-mode]) .markdown-preview{padding:2em}}@media screen and (max-width:450px){html body[for="html-export"]:not([data-presentation-mode]) .markdown-preview{font-size:14px !important;padding:1em}}@media print{html body[for="html-export"]:not([data-presentation-mode]) #sidebar-toc-btn{display:none}}html body[for="html-export"]:not([data-presentation-mode]) #sidebar-toc-btn{position:fixed;bottom:8px;left:8px;font-size:28px;cursor:pointer;color:inherit;z-index:99;width:32px;text-align:center;opacity:.4}html body[for="html-export"]:not([data-presentation-mode])[html-show-sidebar-toc] #sidebar-toc-btn{opacity:1}html body[for="html-export"]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc{position:fixed;top:0;left:0;width:300px;height:100%;padding:32px 0 48px 0;font-size:14px;box-shadow:0 0 4px rgba(150,150,150,0.33);box-sizing:border-box;overflow:auto;background-color:inherit}html body[for="html-export"]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc::-webkit-scrollbar{width:8px}html body[for="html-export"]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc::-webkit-scrollbar-track{border-radius:10px;background-color:transparent}html body[for="html-export"]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc::-webkit-scrollbar-thumb{border-radius:5px;background-color:rgba(150,150,150,0.66);border:4px solid rgba(150,150,150,0.66);background-clip:content-box}html body[for="html-export"]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc a{text-decoration:none}html body[for="html-export"]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc ul{padding:0 1.6em;margin-top:.8em}html body[for="html-export"]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc li{margin-bottom:.8em}html body[for="html-export"]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc ul{list-style-type:none}html body[for="html-export"]:not([data-presentation-mode])[html-show-sidebar-toc] .markdown-preview{left:300px;width:calc(100% -  300px);padding:2em calc(50% - 457px -  150px);margin:0;box-sizing:border-box}@media screen and (max-width:1274px){html body[for="html-export"]:not([data-presentation-mode])[html-show-sidebar-toc] .markdown-preview{padding:2em}}@media screen and (max-width:450px){html body[for="html-export"]:not([data-presentation-mode])[html-show-sidebar-toc] .markdown-preview{width:100%}}html body[for="html-export"]:not([data-presentation-mode]):not([html-show-sidebar-toc]) .markdown-preview{left:50%;transform:translateX(-50%)}html body[for="html-export"]:not([data-presentation-mode]):not([html-show-sidebar-toc]) .md-sidebar-toc{display:none}
/* Please visit the URL below for more information: */
/*   https://shd101wyy.github.io/markdown-preview-enhanced/#/customize-css */

      </style>
    </head>
    <body for="html-export" data-presentation-mode="">
      <div class="mume markdown-preview  " data-presentation-mode="">
      
    <div style="display:none;"><link rel="stylesheet" href="../common/css/font-awesome-4.7.0/css/font-awesome.css">
<link rel="stylesheet" href="../common/css/style-color.css">
<link rel="stylesheet" href="../common/css/margin.css">
</div>
    <div class="reveal">
      <div class="slides">
        <section><section data-notes="" lineno="11" class="slide " data-line="11" data-h="0" data-v="0">
<div class="header"><img class="hust" src=""></div>
<div class="bottom15"></div>
<h1 class="mume-header" id="%E5%9B%BE%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C%E5%AF%BC%E8%AE%BA">图神经网络导论</h1>

<hr class="width50">
<h2 class="mume-header" id="%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C">神经网络</h2>

<div class="bottom5"></div>
<h3 class="mume-header" id="%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%A7%91%E5%AD%A6%E4%B8%8E%E6%8A%80%E6%9C%AF%E5%AD%A6%E9%99%A2-nbsp-nbsp-%E5%BC%A0%E8%85%BE">计算机科学与技术学院 &nbsp; &nbsp; 张腾</h3>

<br>
<h4 class="mume-header" id="tengzhanghusteducn"><a href="mailto:tengzhang@hust.edu.cn">tengzhang@hust.edu.cn</a></h4>

</section><section vertical="true" data-notes="" lineno="30" class="slide " data-line="30" data-h="0" data-v="1">
<div class="header"><img class="hust" src=""><div class="title"><hr class="hr_top"><h5>发展史</h5></div></div>
<div class="mermaid">gantt
todayMarker off
dateFormat  YYYY
axisFormat %Y

section 神经网络
模型提出: done, 1943, 1969
1943 MP神经网络: 1943, milestone
1958 Rosenblatt提出感知机: 1958, milestone
1969 Minsky出版《感知机》: 1969, milestone
冰河期: done, 1969, 1983
1974 反向传播被提出: 1974, milestone
1980 带卷积和子采样的新知机: 1980, milestone
复兴: done, 1983, 1995
1983 Hopfield网络: 1983, milestone
1984 Boltzmann机: 1984, milestone
1986 反向传播被重新提出: 1986, milestone
二次冰河: done, 1995, 2006
1995 统计机器学习兴起: 1995, milestone
深度学习: active, 2006, 2021
2012 DNN引起轰动: 2012, milestone
</div><div class="footer"><hr class="hr_bottom"><div class="multi_column"><h6 class="bottom_left">图神经网络导论</h6><h6 class="bottom_center">神经网络</h6><h6 class="bottom_right">tengzhang@hust.edu.cn</h6></div></div>
</section></section><section><section data-notes="" lineno="38" class="slide " data-line="38" data-h="1" data-v="0">
<div class="header"><img class="hust" src=""><div class="title"><hr class="hr_top"><h5>神经元</h5></div></div>
<p>神经网络的基本结构称为神经元</p>
<br>
<p>单个神经元对应运算<span class="mathjax-exps">$y = h(\wv^\top \xv + b)$</span>，其中<span class="mathjax-exps">$h$</span>是非线性<span class="blue">激活函数</span></p>
<div class="sparse top10 left10">
<h3>下图激活函数<span class="mathjax-exps">$h = \sgn(\cdot)$</span></h3>
</div>
<img src="data:image/svg+xml;charset=utf-8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgd2lkdGg9IjI1Ni4xOTkzNHB0IgogICBoZWlnaHQ9IjIxMC41MTk2N3B0IgogICB2aWV3Qm94PSIwIDAgMjU2LjE5OTM0IDIxMC41MTk2NyIKICAgdmVyc2lvbj0iMS4yIgogICBpZD0ic3ZnMjIzIgogICBzb2RpcG9kaTpkb2NuYW1lPSJuZXVyb24uc3ZnIgogICBpbmtzY2FwZTp2ZXJzaW9uPSIxLjEgKGM0ZThmOWVkNzQsIDIwMjEtMDUtMjQpIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgaWQ9Im5hbWVkdmlldzIyNSIKICAgICBwYWdlY29sb3I9IiNmZmZmZmYiCiAgICAgYm9yZGVyY29sb3I9IiM2NjY2NjYiCiAgICAgYm9yZGVyb3BhY2l0eT0iMS4wIgogICAgIGlua3NjYXBlOnBhZ2VzaGFkb3c9IjIiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAuMCIKICAgICBpbmtzY2FwZTpwYWdlY2hlY2tlcmJvYXJkPSIwIgogICAgIGlua3NjYXBlOmRvY3VtZW50LXVuaXRzPSJwdCIKICAgICBzaG93Z3JpZD0iZmFsc2UiCiAgICAgaW5rc2NhcGU6em9vbT0iMS42NTM0MDkxIgogICAgIGlua3NjYXBlOmN4PSIyNjguMjMzNjgiCiAgICAgaW5rc2NhcGU6Y3k9Ii0yNC43OTcyNTEiCiAgICAgaW5rc2NhcGU6d2luZG93LXdpZHRoPSIzODQwIgogICAgIGlua3NjYXBlOndpbmRvdy1oZWlnaHQ9IjIxMDYiCiAgICAgaW5rc2NhcGU6d2luZG93LXg9IjAiCiAgICAgaW5rc2NhcGU6d2luZG93LXk9IjU0IgogICAgIGlua3NjYXBlOndpbmRvdy1tYXhpbWl6ZWQ9IjEiCiAgICAgaW5rc2NhcGU6Y3VycmVudC1sYXllcj0ic3ZnMjIzIiAvPgogIDxkZWZzCiAgICAgaWQ9ImRlZnM3NiI+CiAgICA8ZwogICAgICAgaWQ9Imc3NCI+CiAgICAgIDxzeW1ib2wKICAgICAgICAgb3ZlcmZsb3c9InZpc2libGUiCiAgICAgICAgIGlkPSJnbHlwaDAtMCI+CiAgICAgICAgPHBhdGgKICAgICAgICAgICBzdHlsZT0ic3Ryb2tlOm5vbmUiCiAgICAgICAgICAgZD0iIgogICAgICAgICAgIGlkPSJwYXRoMiIgLz4KICAgICAgPC9zeW1ib2w+CiAgICAgIDxzeW1ib2wKICAgICAgICAgb3ZlcmZsb3c9InZpc2libGUiCiAgICAgICAgIGlkPSJnbHlwaDAtMSI+CiAgICAgICAgPHBhdGgKICAgICAgICAgICBzdHlsZT0ic3Ryb2tlOm5vbmUiCiAgICAgICAgICAgZD0ibSA3LjEwOTM3NSwtNi4xMjUgYyAtMC40ODQzNzUsMC4wOTM3NSAtMC42NTYyNSwwLjQ1MzEyNSAtMC42NTYyNSwwLjczNDM3NSAwLDAuMzU5Mzc1IDAuMjgxMjUsMC40ODQzNzUgMC40ODQzNzUsMC40ODQzNzUgMC40NTMxMjUsMCAwLjc2NTYyNSwtMC4zOTA2MjUgMC43NjU2MjUsLTAuNzk2ODc1IDAsLTAuNjI1IC0wLjcxODc1LC0wLjkwNjI1IC0xLjM0Mzc1LC0wLjkwNjI1IC0wLjkyMTg3NSwwIC0xLjQyMTg3NSwwLjg5MDYyNSAtMS41NjI1LDEuMTcxODc1IEMgNC40NTMxMjUsLTYuNTYyNSAzLjUzMTI1LC02LjYwOTM3NSAzLjI1LC02LjYwOTM3NSBjIC0xLjUzMTI1LDAgLTIuMzI4MTI1LDEuOTUzMTI1IC0yLjMyODEyNSwyLjI5Njg3NSAwLDAuMDQ2ODc1IDAuMDQ2ODc1LDAuMTI1IDAuMTU2MjUsMC4xMjUgMC4xMjUsMCAwLjE1NjI1LC0wLjA5Mzc1IDAuMTg3NSwtMC4xNDA2MjUgQyAxLjc2NTYyNSwtNiAyLjc4MTI1LC02LjMxMjUgMy4yMDMxMjUsLTYuMzEyNSBjIDAuNjg3NSwwIDAuODEyNSwwLjYyNSAwLjgxMjUsMC45ODQzNzUgQyA0LjAxNTYyNSwtNSAzLjkzNzUsLTQuNjU2MjUgMy43NSwtMy45Mzc1IEwgMy4yMzQzNzUsLTEuODc1IGMgLTAuMjE4NzUsMC45MDYyNSAtMC42NTYyNSwxLjcxODc1IC0xLjQ1MzEyNSwxLjcxODc1IC0wLjA3ODEyNSwwIC0wLjQ1MzEyNSwwIC0wLjc2NTYyNSwtMC4xODc1IEMgMS41NjI1LC0wLjQ1MzEyNSAxLjY4NzUsLTAuOTA2MjUgMS42ODc1LC0xLjA3ODEyNSAxLjY4NzUsLTEuMzc1IDEuNDUzMTI1LC0xLjU2MjUgMS4xNzE4NzUsLTEuNTYyNSBjIC0wLjM1OTM3NSwwIC0wLjc1LDAuMzEyNSAtMC43NSwwLjc5Njg3NSAwLDAuNjI1IDAuNzAzMTI1LDAuOTIxODc1IDEuMzQzNzUsMC45MjE4NzUgMC43MTg3NSwwIDEuMjM0Mzc1LC0wLjU3ODEyNSAxLjU0Njg3NSwtMS4xODc1IDAuMjUsMC44NzUgMSwxLjE4NzUgMS41NDY4NzUsMS4xODc1IDEuNTMxMjUsMCAyLjM0Mzc1LC0xLjk2ODc1IDIuMzQzNzUsLTIuMjk2ODc1IDAsLTAuMDc4MTI1IC0wLjA2MjUsLTAuMTQwNjI1IC0wLjE1NjI1LC0wLjE0MDYyNSAtMC4xMjUsMCAtMC4xNDA2MjUsMC4wNzgxMjUgLTAuMTg3NSwwLjIwMzEyNSAtMC40MDYyNSwxLjMxMjUgLTEuMjgxMjUsMS45MjE4NzUgLTEuOTUzMTI1LDEuOTIxODc1IC0wLjUzMTI1LDAgLTAuODEyNSwtMC4zOTA2MjUgLTAuODEyNSwtMSAwLC0wLjMyODEyNSAwLjA2MjUsLTAuNTYyNSAwLjI5Njg3NSwtMS41NjI1IEwgNC45MjE4NzUsLTQuNzUgYyAwLjIxODc1LC0wLjkwNjI1IDAuNzM0Mzc1LC0xLjU2MjUgMS40MjE4NzUsLTEuNTYyNSAwLjAzMTI1LDAgMC40NTMxMjUsMCAwLjc2NTYyNSwwLjE4NzUgeiBtIDAsMCIKICAgICAgICAgICBpZD0icGF0aDUiIC8+CiAgICAgIDwvc3ltYm9sPgogICAgICA8c3ltYm9sCiAgICAgICAgIG92ZXJmbG93PSJ2aXNpYmxlIgogICAgICAgICBpZD0iZ2x5cGgwLTIiPgogICAgICAgIDxwYXRoCiAgICAgICAgICAgc3R5bGU9InN0cm9rZTpub25lIgogICAgICAgICAgIGQ9Im0gMy40Njg3NSwtMTAuMDMxMjUgYyAwLjAxNTYyNSwtMC4wNjI1IDAuMDQ2ODc1LC0wLjE1NjI1IDAuMDQ2ODc1LC0wLjIzNDM3NSAwLC0wLjE0MDYyNSAtMC4xNTYyNSwtMC4xNDA2MjUgLTAuMTg3NSwtMC4xNDA2MjUgLTAuMDE1NjI1LDAgLTAuNTQ2ODc1LDAuMDQ2ODcgLTAuODI4MTI1LDAuMDc4MTMgLTAuMjUsMC4wMTU2MyAtMC40Njg3NSwwLjAzMTI1IC0wLjc1LDAuMDQ2ODcgLTAuMzU5Mzc1LDAuMDMxMjUgLTAuNDUzMTI1LDAuMDQ2ODcgLTAuNDUzMTI1LDAuMzI4MTI1IDAsMC4xNDA2MjUgMC4xNDA2MjUsMC4xNDA2MjUgMC4yOTY4NzUsMC4xNDA2MjUgMC43NjU2MjUsMCAwLjc2NTYyNSwwLjE0MDYyNSAwLjc2NTYyNSwwLjI4MTI1IDAsMC4xMDkzNzUgLTAuMTI1LDAuNTQ2ODc1IC0wLjE4NzUsMC44MTI1IEwgMS44MTI1LC03LjI4MTI1IEMgMS42NzE4NzUsLTYuNjcxODc1IDAuODEyNSwtMy4yNjU2MjUgMC43NSwtMyBjIC0wLjA3ODEyNSwwLjM3NSAtMC4wNzgxMjUsMC42MjUgLTAuMDc4MTI1LDAuODI4MTI1IDAsMS41MzEyNSAwLjg1OTM3NSwyLjMyODEyNSAxLjgyODEyNSwyLjMyODEyNSAxLjc1LDAgMy41NDY4NzUsLTIuMjM0Mzc1IDMuNTQ2ODc1LC00LjQyMTg3NSAwLC0xLjM3NSAtMC43ODEyNSwtMi4zNDM3NSAtMS45MDYyNSwtMi4zNDM3NSAtMC43ODEyNSwwIC0xLjQ4NDM3NSwwLjY0MDYyNSAtMS43NjU2MjUsMC45Mzc1IHogbSAtMC45NTMxMjUsOS44NzUgYyAtMC40Njg3NSwwIC0xLC0wLjM1OTM3NSAtMSwtMS41MzEyNSAwLC0wLjQ4NDM3NSAwLjA0Njg3NSwtMC43NjU2MjUgMC4zMTI1LC0xLjgyODEyNSAwLjA0Njg3NSwtMC4xODc1IDAuMjgxMjUsLTEuMTU2MjUgMC4zNDM3NSwtMS4zNDM3NSAwLjAzMTI1LC0wLjEyNSAwLjkyMTg3NSwtMS40NTMxMjUgMS45Mzc1LC0xLjQ1MzEyNSAwLjY1NjI1LDAgMC45NTMxMjUsMC42NTYyNSAwLjk1MzEyNSwxLjQzNzUgMCwwLjcxODc1IC0wLjQwNjI1LDIuNDIxODc1IC0wLjc4MTI1LDMuMTg3NSAtMC4zNzUsMC44MTI1IC0xLjA3ODEyNSwxLjUzMTI1IC0xLjc2NTYyNSwxLjUzMTI1IHogbSAwLDAiCiAgICAgICAgICAgaWQ9InBhdGg4IiAvPgogICAgICA8L3N5bWJvbD4KICAgICAgPHN5bWJvbAogICAgICAgICBvdmVyZmxvdz0idmlzaWJsZSIKICAgICAgICAgaWQ9ImdseXBoMC0zIj4KICAgICAgICA8cGF0aAogICAgICAgICAgIHN0eWxlPSJzdHJva2U6bm9uZSIKICAgICAgICAgICBkPSJNIDMuOTM3NSwxLjY4NzUgQyAzLjU0Njg3NSwyLjI1IDIuOTUzMTI1LDIuNzY1NjI1IDIuMjE4NzUsMi43NjU2MjUgYyAtMC4xNzE4NzUsMCAtMC45MDYyNSwtMC4wMzEyNSAtMS4xMjUsLTAuNzE4NzUgQyAxLjE0MDYyNSwyLjA2MjUgMS4yMTg3NSwyLjA2MjUgMS4yNSwyLjA2MjUgMS42ODc1LDIuMDYyNSAyLDEuNjcxODc1IDIsMS4zMTI1IDIsMC45Njg3NSAxLjcwMzEyNSwwLjg1OTM3NSAxLjQ4NDM3NSwwLjg1OTM3NSAxLjI1LDAuODU5Mzc1IDAuNzE4NzUsMS4wMzEyNSAwLjcxODc1LDEuNzY1NjI1IGMgMCwwLjc2NTYyNSAwLjY0MDYyNSwxLjI5Njg3NSAxLjUsMS4yOTY4NzUgMS41LDAgMy4wMTU2MjUsLTEuMzc1IDMuNDM3NSwtMy4wNDY4NzUgTCA3LjEyNSwtNS44MjgxMjUgQyA3LjE0MDYyNSwtNS45MDYyNSA3LjE3MTg3NSwtNiA3LjE3MTg3NSwtNi4wOTM3NSBjIDAsLTAuMjE4NzUgLTAuMTg3NSwtMC4zNzUgLTAuNDA2MjUsLTAuMzc1IC0wLjE0MDYyNSwwIC0wLjQ1MzEyNSwwLjA2MjUgLTAuNTc4MTI1LDAuNTE1NjI1IGwgLTEuMTA5Mzc1LDQuNDA2MjUgQyA1LjAxNTYyNSwtMS4yODEyNSA1LjAxNTYyNSwtMS4yNSA0Ljg5MDYyNSwtMS4wNzgxMjUgNC41OTM3NSwtMC42NTYyNSA0LjA5Mzc1LC0wLjE1NjI1IDMuMzc1LC0wLjE1NjI1IGMgLTAuODQzNzUsMCAtMC45MjE4NzUsLTAuODEyNSAtMC45MjE4NzUsLTEuMjE4NzUgMCwtMC44NTkzNzUgMC40MDYyNSwtMi4wMTU2MjUgMC44MTI1LC0zLjA5Mzc1IDAuMTcxODc1LC0wLjQzNzUgMC4yNjU2MjUsLTAuNjQwNjI1IDAuMjY1NjI1LC0wLjk1MzEyNSAwLC0wLjYyNSAtMC40NTMxMjUsLTEuMTg3NSAtMS4xODc1LC0xLjE4NzUgLTEuMzkwNjI1LDAgLTEuOTM3NSwyLjE3MTg3NSAtMS45Mzc1LDIuMjk2ODc1IDAsMC4wNDY4NzUgMC4wNjI1LDAuMTI1IDAuMTU2MjUsMC4xMjUgMC4xNDA2MjUsMCAwLjE1NjI1LC0wLjA2MjUgMC4yMTg3NSwtMC4yNjU2MjUgQyAxLjE0MDYyNSwtNS43MTg3NSAxLjcwMzEyNSwtNi4zMTI1IDIuMjk2ODc1LC02LjMxMjUgYyAwLjE0MDYyNSwwIDAuMzkwNjI1LDAgMC4zOTA2MjUsMC41IDAsMC4zNzUgLTAuMTcxODc1LDAuODEyNSAtMC4zOTA2MjUsMS4zOTA2MjUgLTAuNzM0Mzc1LDEuOTY4NzUgLTAuNzM0Mzc1LDIuNDUzMTI1IC0wLjczNDM3NSwyLjgxMjUgMCwxLjQyMTg3NSAxLjAxNTYyNSwxLjc2NTYyNSAxLjc2NTYyNSwxLjc2NTYyNSAwLjQzNzUsMCAwLjk4NDM3NSwtMC4xNDA2MjUgMS41LC0wLjcwMzEyNSBMIDQuODQzNzUsLTAuNTMxMjUgQyA0LjYyNSwwLjM1OTM3NSA0LjQ2ODc1LDAuOTM3NSAzLjkzNzUsMS42ODc1IFogbSAwLDAiCiAgICAgICAgICAgaWQ9InBhdGgxMSIgLz4KICAgICAgPC9zeW1ib2w+CiAgICAgIDxzeW1ib2wKICAgICAgICAgb3ZlcmZsb3c9InZpc2libGUiCiAgICAgICAgIGlkPSJnbHlwaDAtNCI+CiAgICAgICAgPHBhdGgKICAgICAgICAgICBzdHlsZT0ic3Ryb2tlOm5vbmUiCiAgICAgICAgICAgZD0ibSA1LjE1NjI1LC0wLjkyMTg3NSBjIDAuMzI4MTI1LDAuOTA2MjUgMS4yNjU2MjUsMS4wNzgxMjUgMS44MjgxMjUsMS4wNzgxMjUgMS4xNDA2MjUsMCAxLjgyODEyNSwtMSAyLjIzNDM3NSwtMi4wMzEyNSAwLjM0Mzc1LC0wLjg3NSAwLjkwNjI1LC0yLjg0Mzc1IDAuOTA2MjUsLTMuNzM0Mzc1IDAsLTAuOTIxODc1IC0wLjQ2ODc1LC0xIC0wLjU5Mzc1LC0xIC0wLjM1OTM3NSwwIC0wLjcwMzEyNSwwLjM1OTM3NSAtMC43MDMxMjUsMC42NTYyNSAwLDAuMTcxODc1IDAuMTA5Mzc1LDAuMjgxMjUgMC4xODc1LDAuMzQzNzUgMC4xNDA2MjUsMC4xNDA2MjUgMC41MzEyNSwwLjU0Njg3NSAwLjUzMTI1LDEuMzEyNSAwLDAuNTE1NjI1IC0wLjQyMTg3NSwxLjkyMTg3NSAtMC43MzQzNzUsMi42MjUgQyA4LjM5MDYyNSwtMC43NSA3LjgyODEyNSwtMC4xNTYyNSA3LjA0Njg3NSwtMC4xNTYyNSBjIC0wLjg0Mzc1LDAgLTEuMTA5Mzc1LC0wLjYyNSAtMS4xMDkzNzUsLTEuMzEyNSAwLC0wLjQzNzUgMC4xNDA2MjUsLTAuOTY4NzUgMC4yMDMxMjUsLTEuMjE4NzUgbCAwLjYyNSwtMi41MTU2MjUgQyA2Ljg0Mzc1LC01LjUgNi45Njg3NSwtNi4wMzEyNSA2Ljk2ODc1LC02LjA5Mzc1IGMgMCwtMC4yMTg3NSAtMC4xNzE4NzUsLTAuMzc1IC0wLjQwNjI1LC0wLjM3NSAtMC40MjE4NzUsMCAtMC41MzEyNSwwLjM3NSAtMC42MjUsMC43MzQzNzUgLTAuMTQwNjI1LDAuNTkzNzUgLTAuNzgxMjUsMy4xMjUgLTAuODQzNzUsMy40NTMxMjUgLTAuMDQ2ODc1LDAuMjUgLTAuMDQ2ODc1LDAuNDIxODc1IC0wLjA0Njg3NSwwLjc1IDAsMC4zNTkzNzUgLTAuNDg0Mzc1LDAuOTM3NSAtMC41LDAuOTY4NzUgLTAuMTcxODc1LDAuMTU2MjUgLTAuNDA2MjUsMC40MDYyNSAtMC44NzUsMC40MDYyNSAtMS4xODc1LDAgLTEuMTg3NSwtMS4xMjUgLTEuMTg3NSwtMS4zNzUgMCwtMC40ODQzNzUgMC4xMDkzNzUsLTEuMTQwNjI1IDAuNzgxMjUsLTIuOTIxODc1IDAuMTg3NSwtMC40Njg3NSAwLjI2NTYyNSwtMC42NTYyNSAwLjI2NTYyNSwtMC45Njg3NSAwLC0wLjYyNSAtMC40NTMxMjUsLTEuMTg3NSAtMS4xODc1LC0xLjE4NzUgLTEuMzkwNjI1LDAgLTEuOTM3NSwyLjE3MTg3NSAtMS45Mzc1LDIuMjk2ODc1IDAsMC4wNDY4NzUgMC4wNjI1LDAuMTI1IDAuMTU2MjUsMC4xMjUgMC4xNDA2MjUsMCAwLjE1NjI1LC0wLjA2MjUgMC4yMTg3NSwtMC4yNjU2MjUgMC4zNzUsLTEuMzI4MTI1IDAuOTUzMTI1LC0xLjg1OTM3NSAxLjUxNTYyNSwtMS44NTkzNzUgMC4xNDA2MjUsMCAwLjM5MDYyNSwwLjAxNTYyNSAwLjM5MDYyNSwwLjUgMCwwLjA2MjUgMCwwLjM3NSAtMC4yNSwxLjA0Njg3NSAtMC43MTg3NSwxLjg3NSAtMC44NTkzNzUsMi40ODQzNzUgLTAuODU5Mzc1LDMuMDYyNSAwLDEuNTYyNSAxLjI4MTI1LDEuODU5Mzc1IDIuMDQ2ODc1LDEuODU5Mzc1IDAuMjY1NjI1LDAgMC45Mzc1LDAgMS41MzEyNSwtMS4wNzgxMjUgeiBtIDAsMCIKICAgICAgICAgICBpZD0icGF0aDE0IiAvPgogICAgICA8L3N5bWJvbD4KICAgICAgPHN5bWJvbAogICAgICAgICBvdmVyZmxvdz0idmlzaWJsZSIKICAgICAgICAgaWQ9ImdseXBoMS0wIj4KICAgICAgICA8cGF0aAogICAgICAgICAgIHN0eWxlPSJzdHJva2U6bm9uZSIKICAgICAgICAgICBkPSIiCiAgICAgICAgICAgaWQ9InBhdGgxNyIgLz4KICAgICAgPC9zeW1ib2w+CiAgICAgIDxzeW1ib2wKICAgICAgICAgb3ZlcmZsb3c9InZpc2libGUiCiAgICAgICAgIGlkPSJnbHlwaDEtMSI+CiAgICAgICAgPHBhdGgKICAgICAgICAgICBzdHlsZT0ic3Ryb2tlOm5vbmUiCiAgICAgICAgICAgZD0ibSAzLjQ1MzEyNSwtNy42ODc1IGMgMCwtMC4yODEyNSAwLC0wLjI5Njg3NSAtMC4yMzQzNzUsLTAuMjk2ODc1IC0wLjI5Njg3NSwwLjMyODEyNSAtMC44OTA2MjUsMC43NjU2MjUgLTIuMTI1LDAuNzY1NjI1IHYgMC4zNTkzNzUgYyAwLjI4MTI1LDAgMC44NzUsMCAxLjUzMTI1LC0wLjMxMjUgdiA2LjI1IGMgMCwwLjQzNzUgLTAuMDMxMjUsMC41NzgxMjUgLTEuMDkzNzUsMC41NzgxMjUgaCAtMC4zNzUgViAwIGMgMC4zMjgxMjUsLTAuMDMxMjUgMS41LC0wLjAzMTI1IDEuODkwNjI1LC0wLjAzMTI1IDAuMzkwNjI1LDAgMS41NDY4NzUsMCAxLjg3NSwwLjAzMTI1IHYgLTAuMzQzNzUgaCAtMC4zNzUgYyAtMS4wNjI1LDAgLTEuMDkzNzUsLTAuMTQwNjI1IC0xLjA5Mzc1LC0wLjU3ODEyNSB6IG0gMCwwIgogICAgICAgICAgIGlkPSJwYXRoMjAiIC8+CiAgICAgIDwvc3ltYm9sPgogICAgICA8c3ltYm9sCiAgICAgICAgIG92ZXJmbG93PSJ2aXNpYmxlIgogICAgICAgICBpZD0iZ2x5cGgxLTIiPgogICAgICAgIDxwYXRoCiAgICAgICAgICAgc3R5bGU9InN0cm9rZTpub25lIgogICAgICAgICAgIGQ9Ik0gNS4yODEyNSwtMi4wMTU2MjUgSCA1LjAxNTYyNSBjIC0wLjAzMTI1LDAuMjAzMTI1IC0wLjEyNSwwLjg1OTM3NSAtMC4yNSwxLjA2MjUgQyA0LjY4NzUsLTAuODU5Mzc1IDQsLTAuODU5Mzc1IDMuNjQwNjI1LC0wLjg1OTM3NSBIIDEuNDIxODc1IEMgMS43MzQzNzUsLTEuMTI1IDIuNDY4NzUsLTEuODkwNjI1IDIuNzgxMjUsLTIuMTg3NSBjIDEuODI4MTI1LC0xLjY3MTg3NSAyLjUsLTIuMjk2ODc1IDIuNSwtMy40ODQzNzUgMCwtMS4zOTA2MjUgLTEuMDkzNzUsLTIuMzEyNSAtMi40ODQzNzUsLTIuMzEyNSAtMS4zOTA2MjUsMCAtMi4yMDMxMjUsMS4xODc1IC0yLjIwMzEyNSwyLjIxODc1IDAsMC42MjUgMC41MTU2MjUsMC42MjUgMC41NjI1LDAuNjI1IDAuMjUsMCAwLjU2MjUsLTAuMTg3NSAwLjU2MjUsLTAuNTc4MTI1IDAsLTAuMzI4MTI1IC0wLjIzNDM3NSwtMC41NjI1IC0wLjU2MjUsLTAuNTYyNSAtMC4xMDkzNzUsMCAtMC4xNDA2MjUsMCAtMC4xNzE4NzUsMC4wMTU2MjUgMC4yMzQzNzUsLTAuODEyNSAwLjg3NSwtMS4zNTkzNzUgMS42NTYyNSwtMS4zNTkzNzUgMS4wMTU2MjUsMCAxLjY0MDYyNSwwLjg0Mzc1IDEuNjQwNjI1LDEuOTUzMTI1IDAsMS4wMTU2MjUgLTAuNTc4MTI1LDEuOTA2MjUgLTEuMjY1NjI1LDIuNjcxODc1IEwgMC41OTM3NSwtMC4yODEyNSBWIDAgaCA0LjM3NSB6IG0gMCwwIgogICAgICAgICAgIGlkPSJwYXRoMjMiIC8+CiAgICAgIDwvc3ltYm9sPgogICAgICA8c3ltYm9sCiAgICAgICAgIG92ZXJmbG93PSJ2aXNpYmxlIgogICAgICAgICBpZD0iZ2x5cGgyLTAiPgogICAgICAgIDxwYXRoCiAgICAgICAgICAgc3R5bGU9InN0cm9rZTpub25lIgogICAgICAgICAgIGQ9Im0gMC43NSwwIHYgLTcuMDkzNzUgaCA2IFYgMCBaIE0gMS41LC0wLjc1IEggNiBWIC02LjM0Mzc1IEggMS41IFogbSAwLDAiCiAgICAgICAgICAgaWQ9InBhdGgyNiIgLz4KICAgICAgPC9zeW1ib2w+CiAgICAgIDxzeW1ib2wKICAgICAgICAgb3ZlcmZsb3c9InZpc2libGUiCiAgICAgICAgIGlkPSJnbHlwaDItMSI+CiAgICAgICAgPHBhdGgKICAgICAgICAgICBzdHlsZT0ic3Ryb2tlOm5vbmUiCiAgICAgICAgICAgZD0iTSAxLjcxODc1LDAuMjAzMTI1IEMgMS41LDAuMjAzMTI1IDEuMzA0Njg4LDAuMTI1IDEuMTQwNjI1LC0wLjAzMTI1IDAuOTg0Mzc1LC0wLjE5NTMxMiAwLjkwNjI1LC0wLjM5MDYyNSAwLjkwNjI1LC0wLjYwOTM3NSBjIDAsLTAuMjI2NTYzIDAuMDc4MTI1LC0wLjQyMTg3NSAwLjIzNDM3NSwtMC41NzgxMjUgMC4xNjQwNjMsLTAuMTY0MDYyIDAuMzU5Mzc1LC0wLjI1IDAuNTc4MTI1LC0wLjI1IDAuMjI2NTYyLDAgMC40MjE4NzUsMC4wODU5MzggMC41NzgxMjUsMC4yNSAwLjE2NDA2MywwLjE1NjI1IDAuMjUsMC4zNTE1NjIgMC4yNSwwLjU3ODEyNSAwLDAuMjE4NzUgLTAuMDg1OTM3LDAuNDE0MDYzIC0wLjI1LDAuNTc4MTI1IEMgMi4xNDA2MjUsMC4xMjUgMS45NDUzMTIsMC4yMDMxMjUgMS43MTg3NSwwLjIwMzEyNSBaIG0gMCwwIgogICAgICAgICAgIGlkPSJwYXRoMjkiIC8+CiAgICAgIDwvc3ltYm9sPgogICAgICA8c3ltYm9sCiAgICAgICAgIG92ZXJmbG93PSJ2aXNpYmxlIgogICAgICAgICBpZD0iZ2x5cGgyLTIiPgogICAgICAgIDxwYXRoCiAgICAgICAgICAgc3R5bGU9InN0cm9rZTpub25lIgogICAgICAgICAgIGQ9Ik0gMi4xNTYyNSwwLjIwMzEyNSBDIDEuODQzNzUsMC4yMDMxMjUgMS41NTA3ODEsMC4xNTYyNSAxLjI4MTI1LDAuMDYyNSAxLjAxOTUzMSwtMC4wMzEyNSAwLjc4OTA2MiwtMC4xNjAxNTYgMC41OTM3NSwtMC4zMjgxMjUgMC41NTA3ODEsLTAuNDQxNDA2IDAuNTE1NjI1LC0wLjYyODkwNiAwLjQ4NDM3NSwtMC44OTA2MjUgMC40NjA5MzgsLTEuMTQ4NDM4IDAuNDQ1MzEyLC0xLjM2MzI4MSAwLjQzNzUsLTEuNTMxMjUgMC40Mzc1LC0xLjYyNSAwLjUsLTEuNjcxODc1IDAuNjI1LC0xLjY3MTg3NSBjIDAuMDM5MDYyLDAgMC4wNzgxMjUsMC4wMTE3MTkgMC4xMDkzNzUsMC4wMzEyNSAwLjAzOTA2MywwLjAxMTcxOSAwLjA2NjQwNiwwLjAzOTA2MyAwLjA3ODEyNSwwLjA3ODEyNSAwLjEyNSwwLjQ5MjE4OCAwLjMyODEyNSwwLjg0Mzc1IDAuNjA5Mzc1LDEuMDYyNSAwLjI4OTA2MywwLjIxMDkzOCAwLjU4MjAzMSwwLjMxMjUgMC44NzUsMC4zMTI1IDAuMjg5MDYzLDAgMC41MzUxNTYsLTAuMDk3NjU2IDAuNzM0Mzc1LC0wLjI5Njg3NSAwLjIwNzAzMSwtMC4xOTUzMTMgMC4zMTI1LC0wLjQ0MTQwNiAwLjMxMjUsLTAuNzM0Mzc1IDAsLTAuMjY5NTMxIC0wLjA4OTg0NCwtMC41IC0wLjI2NTYyNSwtMC42ODc1IEMgMi44OTg0MzgsLTIuMTAxNTYyIDIuNTgyMDMxLC0yLjM0Mzc1IDIuMTI1LC0yLjYyNSAxLjc4OTA2MiwtMi44MzIwMzEgMS41MTU2MjUsLTMuMDMxMjUgMS4yOTY4NzUsLTMuMjE4NzUgMS4wODU5MzgsLTMuNDE0MDYyIDAuOTM3NSwtMy42MTMyODEgMC44NDM3NSwtMy44MTI1IDAuNzUsLTQuMDA3ODEyIDAuNzAzMTI1LC00LjIzNDM3NSAwLjcwMzEyNSwtNC40ODQzNzUgYyAwLC0wLjMyMDMxMyAwLjA3MDMxMywtMC42MTMyODEgMC4yMTg3NSwtMC44NzUgMC4xNTYyNSwtMC4yNTc4MTMgMC4zODI4MTMsLTAuNDYwOTM3IDAuNjg3NSwtMC42MDkzNzUgMC4zMDA3ODEsLTAuMTU2MjUgMC42NzU3ODEsLTAuMjM0Mzc1IDEuMTI1LC0wLjIzNDM3NSAwLjMwMDc4MSwwIDAuNTUwNzgxLDAuMDMxMjUgMC43NSwwLjA5Mzc1IDAuMTk1MzEzLDAuMDU0Njg3IDAuMzQ3NjU2LDAuMTE3MTg3IDAuNDUzMTI1LDAuMTg3NSAwLjA3MDMxMiwwLjEwNTQ2OSAwLjEzMjgxMiwwLjI3NzM0NCAwLjE4NzUsMC41MTU2MjUgMC4wNjI1LDAuMjMwNDY5IDAuMDkzNzUsMC40NTMxMjUgMC4wOTM3NSwwLjY3MTg3NSAwLDAuMDYyNSAtMC4wNTQ2ODgsMC4wOTM3NSAtMC4xNTYyNSwwLjA5Mzc1IC0wLjA2MjUsMCAtMC4xMjEwOTQsLTAuMDA3ODEgLTAuMTcxODc1LC0wLjAzMTI1IEMgMy44MzU5MzgsLTQuNjkxNDA2IDMuODAwNzgxLC00LjcyMjY1NiAzLjc4MTI1LC00Ljc2NTYyNSAzLjY0NDUzMSwtNS4wOTc2NTYgMy40NzY1NjIsLTUuMzUxNTYyIDMuMjgxMjUsLTUuNTMxMjUgMy4wOTM3NSwtNS43MDcwMzEgMi44NTE1NjIsLTUuNzk2ODc1IDIuNTYyNSwtNS43OTY4NzUgYyAtMC4yNSwwIC0wLjQ3NjU2MiwwLjA3ODEyNSAtMC42NzE4NzUsMC4yMzQzNzUgLTAuMTg3NSwwLjE0ODQzOCAtMC4yODEyNSwwLjM2NzE4OCAtMC4yODEyNSwwLjY1NjI1IDAsMC4yMzA0NjkgMC4wNzAzMTMsMC40Mzc1IDAuMjE4NzUsMC42MjUgMC4xNDQ1MzEsMC4xNzk2ODggMC40MTQwNjMsMC4zODI4MTIgMC44MTI1LDAuNjA5Mzc1IDAuNTgyMDMxLDAuMzI0MjE5IDEuMDE1NjI1LDAuNjMyODEzIDEuMjk2ODc1LDAuOTIxODc1IDAuMjgxMjUsMC4yODEyNSAwLjQyMTg3NSwwLjY1NjI1IDAuNDIxODc1LDEuMTI1IDAsMC41NDI5NjkgLTAuMjAzMTI1LDAuOTg0Mzc1IC0wLjYwOTM3NSwxLjMyODEyNSAtMC40MDYyNSwwLjMzMjAzMTIgLTAuOTM3NSwwLjUgLTEuNTkzNzUsMC41IHogbSAwLDAiCiAgICAgICAgICAgaWQ9InBhdGgzMiIgLz4KICAgICAgPC9zeW1ib2w+CiAgICAgIDxzeW1ib2wKICAgICAgICAgb3ZlcmZsb3c9InZpc2libGUiCiAgICAgICAgIGlkPSJnbHlwaDItMyI+CiAgICAgICAgPHBhdGgKICAgICAgICAgICBzdHlsZT0ic3Ryb2tlOm5vbmUiCiAgICAgICAgICAgZD0iTSAyLjkyMTg3NSw0LjM0Mzc1IEMgMi4wNzgxMjUsNC4zNDM3NSAxLjQwNjI1LDQuMTc5Njg4IDAuOTA2MjUsMy44NTkzNzUgMC40MTQwNjIsMy41MzUxNTYgMC4xNzE4NzUsMy4wOTc2NTYgMC4xNzE4NzUsMi41NDY4NzUgMC4xNzE4NzUsMi4yODUxNTYgMC4yMDcwMzEsMi4wNjY0MDYgMC4yODEyNSwxLjg5MDYyNSAwLjM2MzI4MSwxLjcxMDkzOCAwLjQ4ODI4MSwxLjU1NDY4OCAwLjY1NjI1LDEuNDIxODc1IDAuODAwNzgxLDEuMzA0Njg4IDAuOTg4MjgxLDEuMTU2MjUgMS4yMTg3NSwwLjk2ODc1IDEuNDU3MDMxLDAuNzgxMjUgMS43MDMxMjUsMC41ODU5MzggMS45NTMxMjUsMC4zOTA2MjUgbCAwLjYyNSwwLjAzMTI1IGMgLTAuNDgwNDY5LDAuMzEyNSAtMC44MTI1LDAuNjAxNTYzIC0xLDAuODc1IC0wLjE4NzUsMC4yODEyNSAtMC4yODEyNSwwLjYyNSAtMC4yODEyNSwxLjAzMTI1IDAsMC4zOTQ1MzEgMC4xNzU3ODEsMC43MjY1NjMgMC41MzEyNSwxIEMgMi4xNzk2ODgsMy42MDkzNzUgMi42MTcxODgsMy43NSAzLjE0MDYyNSwzLjc1IDMuNzIyNjU2LDMuNzUgNC4xOTUzMTIsMy42MTMyODEgNC41NjI1LDMuMzQzNzUgNC44MTI1LDMuMTU2MjUgNS4wMDM5MDYsMi45MDYyNSA1LjE0MDYyNSwyLjU5Mzc1IDUuMjg1MTU2LDIuMjg5MDYyIDUuMzU5Mzc1LDEuOTcyNjU2IDUuMzU5Mzc1LDEuNjQwNjI1IDUuMzU5Mzc1LDEuNDIxODc1IDUuMjgxMjUsMS4yMzgyODEgNS4xMjUsMS4wOTM3NSA0Ljk2ODc1LDAuOTQ1MzEyIDQuNzIyNjU2LDAuODI4MTI1IDQuMzkwNjI1LDAuNzM0Mzc1IDQuMDY2NDA2LDAuNjQwNjI1IDMuNjQwNjI1LDAuNTgyMDMxIDMuMTA5Mzc1LDAuNTYyNSAyLjE2MDE1NiwwLjQ4ODI4MSAxLjUwMzkwNiwwLjM1OTM3NSAxLjE0MDYyNSwwLjE3MTg3NSAwLjc3MzQzOCwtMC4wMDM5MDYyNSAwLjU5Mzc1LC0wLjI4MTI1IDAuNTkzNzUsLTAuNjU2MjUgYyAwLC0wLjEwMTU2MiAwLjAyMzQzOCwtMC4xOTUzMTIgMC4wNzgxMjUsLTAuMjgxMjUgMC4wNjI1LC0wLjA4MjAzMSAwLjE0ODQzNywtMC4xNzU3ODEgMC4yNjU2MjUsLTAuMjgxMjUgMC4yMzgyODEsLTAuMTc1NzgxIDAuNDEwMTU2LC0wLjMwNDY4OCAwLjUxNTYyNSwtMC4zOTA2MjUgMC4xMTMyODEsLTAuMDgyMDMxIDAuMTk1MzEzLC0wLjE1NjI1IDAuMjUsLTAuMjE4NzUgMC4wNTA3ODEsLTAuMDYyNSAwLjEwMTU2MywtMC4xNDA2MjUgMC4xNTYyNSwtMC4yMzQzNzUgTCAyLjM3NSwtMS43OTY4NzUgYyAtMC4yMTg3NSwwLjA3NDIxOSAtMC40MDYyNSwwLjE3OTY4NyAtMC41NjI1LDAuMzEyNSAtMC4xNDg0MzgsMC4xMzY3MTkgLTAuMjE4NzUsMC4yNjE3MTkgLTAuMjE4NzUsMC4zNzUgMCwwLjEzNjcxOSAwLjA3MDMxMiwwLjI2MTcxOSAwLjIxODc1LDAuMzc1IDAuMTU2MjUsMC4xMDU0NjkgMC4zNzUsMC4xODc1IDAuNjU2MjUsMC4yNSAwLjI4OTA2MiwwLjA1NDY4NyAwLjY0ODQzOCwwLjA5Mzc1IDEuMDc4MTI1LDAuMTI1IDAuOTE0MDYzLDAuMDU0Njg3IDEuNTk3NjU2LDAuMjAzMTI1IDIuMDQ2ODc1LDAuNDUzMTI1IDAuNDQ1MzEyLDAuMjUgMC42NzE4NzUsMC42MDE1NjIgMC42NzE4NzUsMS4wNjI1IDAsMC4zODI4MTIgLTAuMTAxNTYzLDAuNzY1NjI1IC0wLjI5Njg3NSwxLjE0MDYyNSAtMC4xODc1LDAuMzc1IC0wLjQ0NTMxMiwwLjcxODc1IC0wLjc2NTYyNSwxLjAzMTI1IEMgNC44Nzg5MDYsMy42NDA2MjUgNC41MTk1MzEsMy44ODI4MTIgNC4xMjUsNC4wNjI1IDMuNzM4MjgxLDQuMjUgMy4zMzU5MzgsNC4zNDM3NSAyLjkyMTg3NSw0LjM0Mzc1IFogbSAwLjE4NzUsLTYuNDUzMTI1IGMgMC4zNzUsMCAwLjY4NzUsLTAuMTkxNDA2IDAuOTM3NSwtMC41NzgxMjUgMC4yNSwtMC4zODI4MTIgMC4zNzUsLTAuODYzMjgxIDAuMzc1LC0xLjQzNzUgMCwtMC4yODkwNjIgLTAuMDcwMzEzLC0wLjU2MjUgLTAuMjAzMTI1LC0wLjgxMjUgQyA0LjA4MjAzMSwtNS4xOTUzMTIgMy45MDYyNSwtNS40MDYyNSAzLjY4NzUsLTUuNTYyNSAzLjQ3NjU2MiwtNS43MTg3NSAzLjI1LC01Ljc5Njg3NSAzLC01Ljc5Njg3NSBjIC0wLjIzMDQ2OSwwIC0wLjQ0OTIxOSwwLjA4NTkzNyAtMC42NTYyNSwwLjI1IC0wLjE5OTIxOSwwLjE2Nzk2OSAtMC4zNTkzNzUsMC4zODI4MTMgLTAuNDg0Mzc1LDAuNjQwNjI1IC0wLjEyNSwwLjI2MTcxOSAtMC4xODc1LDAuNTQ2ODc1IC0wLjE4NzUsMC44NTkzNzUgMCwwLjM0Mzc1IDAuMDYyNSwwLjY2Nzk2OSAwLjE4NzUsMC45Njg3NSAwLjEzMjgxMywwLjI5Mjk2OSAwLjMxMjUsMC41MjczNDQgMC41MzEyNSwwLjcwMzEyNSAwLjIxODc1LDAuMTc5Njg4IDAuNDU3MDMxLDAuMjY1NjI1IDAuNzE4NzUsMC4yNjU2MjUgeiBtIC0wLjA5Mzc1LDAuNTE1NjI1IGMgLTAuNDA2MjUsMCAtMC43OTY4NzUsLTAuMTAxNTYyIC0xLjE3MTg3NSwtMC4zMTI1IEMgMS40NzY1NjIsLTIuMTEzMjgxIDEuMTc1NzgxLC0yLjM5MDYyNSAwLjkzNzUsLTIuNzM0Mzc1IDAuNjk1MzEyLC0zLjA3ODEyNSAwLjU3ODEyNSwtMy40NTcwMzEgMC41NzgxMjUsLTMuODc1IGMgMCwtMC40Njg3NSAwLjExNzE4NywtMC44Nzg5MDYgMC4zNTkzNzUsLTEuMjM0Mzc1IDAuMjUsLTAuMzUxNTYzIDAuNTcwMzEyLC0wLjYyODkwNiAwLjk2ODc1LC0wLjgyODEyNSAwLjQwNjI1LC0wLjE5NTMxMiAwLjgzMjAzMSwtMC4yOTY4NzUgMS4yODEyNSwtMC4yOTY4NzUgMC4yODkwNjIsMCAwLjU0Njg3NSwwLjAzOTA2MyAwLjc2NTYyNSwwLjEwOTM3NSAwLjIxODc1LDAuMDc0MjE5IDAuNDI5Njg3LDAuMTQwNjI1IDAuNjQwNjI1LDAuMjAzMTI1IDAuMjM4MjgxLDAuMDc0MjE5IDAuNDI1NzgxLDAuMTE3MTg3IDAuNTYyNSwwLjEyNSAwLjE0NDUzMSwwLjAxMTcxOSAwLjI4OTA2MiwwLjAxNTYyNSAwLjQzNzUsMC4wMTU2MjUgMC4xMjUsMCAwLjI3MzQzOCwtMC4wMDM5MSAwLjQ1MzEyNSwtMC4wMTU2MjUgMC4xNzU3ODEsLTAuMDA3ODEgMC4zMDA3ODEsLTAuMDE1NjI1IDAuMzc1LC0wLjAxNTYyNSAwLjEyNSwwIDAuMTg3NSwwLjA3NDIxOSAwLjE4NzUsMC4yMTg3NSAwLDAuMDkzNzUgLTAuMDQ2ODc1LDAuMTg3NSAtMC4xNDA2MjUsMC4yODEyNSAtMC4wNTQ2ODgsMC4wNTQ2ODggLTAuMDkzNzUsMC4wNzgxMjUgLTAuMTI1LDAuMDc4MTI1IEggNS45Mzc1IGMgLTAuMjczNDM4LDAgLTAuNDIxODc1LDAuMDQyOTY5IC0wLjQ1MzEyNSwwLjEyNSAtMC4wMTE3MTksMC4wMzEyNSAtMC4wMjM0MzcsMC4wODk4NDQgLTAuMDMxMjUsMC4xNzE4NzUgLTAuMDExNzE5LDAuMDc0MjE5IC0wLjAyMzQzNywwLjE1NjI1IC0wLjAzMTI1LDAuMjUgLTAuMDExNzE5LDAuMDg1OTM4IC0wLjAxNTYyNSwwLjE3MTg3NSAtMC4wMTU2MjUsMC4yNjU2MjUgMCwwLjUxMTcxOSAtMC4xMTcxODgsMC45ODA0NjkgLTAuMzQzNzUsMS40MDYyNSAtMC4yMTg3NSwwLjQyOTY4NyAtMC41MTE3MTksMC43NzM0MzcgLTAuODc1LDEuMDMxMjUgLTAuMzU1NDY5LDAuMjYxNzE5IC0wLjc0NjA5NCwwLjM5MDYyNSAtMS4xNzE4NzUsMC4zOTA2MjUgeiBtIDAsMCIKICAgICAgICAgICBpZD0icGF0aDM1IiAvPgogICAgICA8L3N5bWJvbD4KICAgICAgPHN5bWJvbAogICAgICAgICBvdmVyZmxvdz0idmlzaWJsZSIKICAgICAgICAgaWQ9ImdseXBoMi00Ij4KICAgICAgICA8cGF0aAogICAgICAgICAgIHN0eWxlPSJzdHJva2U6bm9uZSIKICAgICAgICAgICBkPSJNIDAuNjU2MjUsMC4wNDY4NzUgQyAwLjU3MDMxMiwwLjA0Njg3NSAwLjUsMC4wMzEyNSAwLjQzNzUsMCAwLjM4MjgxMiwtMC4wMTk1MzEyIDAuMzU5Mzc1LC0wLjA2MjUgMC4zNTkzNzUsLTAuMTI1IGMgMCwtMC4wNzAzMTIgMC4wMzEyNSwtMC4xMTcxODggMC4wOTM3NSwtMC4xNDA2MjUgMC4wNjI1LC0wLjAzMTI1IDAuMTQ0NTMxLC0wLjA2MjUgMC4yNSwtMC4wOTM3NSAwLjE1NjI1LC0wLjAzOTA2MyAwLjMwMDc4MSwtMC4wOTM3NSAwLjQzNzUsLTAuMTU2MjUgQyAxLjI3MzQzOCwtMC41ODU5MzggMS4zNDM3NSwtMC43MjY1NjIgMS4zNDM3NSwtMC45Mzc1IHYgLTMuMjE4NzUgYyAwLC0wLjI2OTUzMSAtMC4wMjczNDQsLTAuNSAtMC4wNzgxMjUsLTAuNjg3NSBDIDEuMjEwOTM4LC01LjAzMTI1IDEuMDU0Njg4LC01LjE2MDE1NiAwLjc5Njg3NSwtNS4yMzQzNzUgMC43NTM5MDYsLTUuMjUzOTA2IDAuNzE4NzUsLTUuMjczNDM4IDAuNjg3NSwtNS4yOTY4NzUgMC42NTYyNSwtNS4zMjgxMjUgMC42NDA2MjUsLTUuMzc1IDAuNjQwNjI1LC01LjQzNzUgMC42NDA2MjUsLTUuNTM5MDYyIDAuNjg3NSwtNS41OTc2NTYgMC43ODEyNSwtNS42MDkzNzUgMS4xMzI4MTIsLTUuNzAzMTI1IDEuNDIxODc1LC01LjgxMjUgMS42NDA2MjUsLTUuOTM3NSAxLjg1OTM3NSwtNi4wNzAzMTIgMi4wNzAzMTIsLTYuMjE4NzUgMi4yODEyNSwtNi4zNzUgMi4zMTI1LC02LjM5NDUzMSAyLjMzNTkzOCwtNi40MTAxNTYgMi4zNTkzNzUsLTYuNDIxODc1IGMgMC4wMzEyNSwtMC4wMTk1MzEgMC4wNTQ2ODcsLTAuMDMxMjUgMC4wNzgxMjUsLTAuMDMxMjUgMC4wMTk1MzEsMCAwLjAzNTE1NiwwLjAxMTcxOSAwLjA0Njg3NSwwLjAzMTI1IDAuMDE5NTMxLDAuMDIzNDM3IDAuMDMxMjUsMC4wNDY4NzUgMC4wMzEyNSwwLjA3ODEyNSAwLDAuMDc0MjE5IC0wLjAxNTYyNSwwLjIxODc1IC0wLjA0Njg3NSwwLjQzNzUgLTAuMDIzNDM4LDAuMjEwOTM4IC0wLjAzMTI1LDAuMzgyODEyIC0wLjAzMTI1LDAuNTE1NjI1IDAsMC4wNDI5NjkgMCwwLjA4NTkzNyAwLDAuMTI1IDAuMDA3ODEsMC4wMzEyNSAwLjAxOTUzMSwwLjA1NDY4NyAwLjAzMTI1LDAuMDYyNSAwLjM1MTU2MiwtMC4zMzIwMzEgMC43MjY1NjIsLTAuNTgyMDMxIDEuMTI1LC0wLjc1IDAuMzk0NTMxLC0wLjE2NDA2MyAwLjgyODEyNSwtMC4yNSAxLjI5Njg3NSwtMC4yNSAwLjQ4ODI4MSwwIDAuODkwNjI1LDAuMTk5MjE5IDEuMjAzMTI1LDAuNTkzNzUgMC4zMjAzMTIsMC4zOTg0MzcgMC40ODQzNzUsMC44OTA2MjUgMC40ODQzNzUsMS40ODQzNzUgdiAzLjE4NzUgYyAwLDAuMjEwOTM4IDAuMDY2NDA2LDAuMzQzNzUgMC4yMDMxMjUsMC40MDYyNSAwLjE0NDUzMSwwLjA2MjUgMC4yOTY4NzUsMC4xMjEwOTQgMC40NTMxMjUsMC4xNzE4NzUgMC4wNzAzMTMsMC4wMzEyNSAwLjE0NDUzMSwwLjA3MDMxMyAwLjIxODc1LDAuMTA5Mzc1IDAuMDgyMDMxLDAuMDMxMjUgMC4xMjUsMC4wODU5MzggMC4xMjUsMC4xNTYyNSAwLDAuMDYyNSAtMC4wMzkwNjMsMC4wOTc2NTYyNSAtMC4xMDkzNzUsMC4xMDkzNzUgLTAuMDc0MjE5LDAuMDE5NTMxMiAtMC4xMzY3MTksMC4wMzEyNSAtMC4xODc1LDAuMDMxMjUgLTAuMjEwOTM4LDAgLTAuMzcxMDk0LC0wLjAxMTcxODggLTAuNDg0Mzc1LC0wLjAzMTI1IC0wLjEwNTQ2OSwtMC4wMTE3MTg3NSAtMC4yMTA5MzcsLTAuMDE5NTMxMjUgLTAuMzEyNSwtMC4wMzEyNSAtMC4wOTM3NSwtMC4wMDc4MTI1IC0wLjIzMDQ2OSwtMC4wMTU2MjUgLTAuNDA2MjUsLTAuMDE1NjI1IC0wLjE3OTY4NywwIC0wLjMyNDIxOSwwLjAwNzgxMjUgLTAuNDM3NSwwLjAxNTYyNSBDIDUuNTM1MTU2LC0wLjAwMzkwNjI1IDUuNDI1NzgxLDAuMDAzOTA2MjUgNS4zMTI1LDAuMDE1NjI1IDUuMTk1MzEyLDAuMDM1MTU2MiA1LjAzOTA2MiwwLjA0Njg3NSA0Ljg0Mzc1LDAuMDQ2ODc1IDQuNzg5MDYyLDAuMDQ2ODc1IDQuNzI2NTYyLDAuMDM1MTU2MiA0LjY1NjI1LDAuMDE1NjI1IDQuNTgyMDMxLDAuMDAzOTA2MjUgNC41NDY4NzUsLTAuMDMxMjUgNC41NDY4NzUsLTAuMDkzNzUgYyAwLC0wLjA3MDMxMiAwLjAzNTE1NiwtMC4xMjUgMC4xMDkzNzUsLTAuMTU2MjUgQyA0LjcyNjU2MiwtMC4yODkwNjIgNC44MDQ2ODgsLTAuMzI4MTI1IDQuODkwNjI1LC0wLjM1OTM3NSA1LjAzNTE1NiwtMC40MTAxNTYgNS4xNzU3ODEsLTAuNDY4NzUgNS4zMTI1LC0wLjUzMTI1IDUuNDU3MDMxLC0wLjU5Mzc1IDUuNTMxMjUsLTAuNzI2NTYyIDUuNTMxMjUsLTAuOTM3NSB2IC0zLjE0MDYyNSBjIDAsLTAuNDM3NSAtMC4xMjUsLTAuNzczNDM3IC0wLjM3NSwtMS4wMTU2MjUgLTAuMjQyMTg4LC0wLjI1IC0wLjU2MjUsLTAuMzc4OTA2IC0wLjk2ODc1LC0wLjM5MDYyNSAtMC4zNjcxODgsMCAtMC42ODM1OTQsMC4wNTg1OTQgLTAuOTUzMTI1LDAuMTcxODc1IC0wLjI3MzQzNywwLjExNzE4OCAtMC41MTE3MTksMC4yNTc4MTIgLTAuNzE4NzUsMC40MjE4NzUgLTAuMDQyOTY5LDAuMDQyOTY5IC0wLjA3NDIxOSwwLjA5Mzc1IC0wLjA5Mzc1LDAuMTU2MjUgLTAuMDExNzE5LDAuMDYyNSAtMC4wMTU2MjUsMC4xMjUgLTAuMDE1NjI1LDAuMTg3NSBWIC0wLjkzNzUgYyAwLDAuMjEwOTM4IDAuMDY2NDA2LDAuMzUxNTYyIDAuMjAzMTI1LDAuNDIxODc1IDAuMTMyODEzLDAuMDYyNSAwLjI4MTI1LDAuMTE3MTg3IDAuNDM3NSwwLjE1NjI1IDAuMjI2NTYzLDAuMDYyNSAwLjM0Mzc1LDAuMTQwNjI1IDAuMzQzNzUsMC4yMzQzNzUgMCwwLjA2MjUgLTAuMDI3MzQ0LDAuMTA1NDY4OCAtMC4wNzgxMjUsMC4xMjUgLTAuMDU0Njg4LDAuMDMxMjUgLTAuMTI1LDAuMDQ2ODc1IC0wLjIxODc1LDAuMDQ2ODc1IC0wLjE5OTIxOSwwIC0wLjM1OTM3NSwtMC4wMTE3MTg4IC0wLjQ4NDM3NSwtMC4wMzEyNSBDIDIuNDkyMTg4LDAuMDAzOTA2MjUgMi4zODI4MTIsLTAuMDAzOTA2MjUgMi4yODEyNSwtMC4wMTU2MjUgMi4xODc1LC0wLjAyMzQzNzUgMi4wNTA3ODEsLTAuMDMxMjUgMS44NzUsLTAuMDMxMjUgYyAtMC4xNjc5NjksMCAtMC4zMDQ2ODgsMC4wMDc4MTI1IC0wLjQwNjI1LDAuMDE1NjI1IEMgMS4zNjMyODEsLTAuMDAzOTA2MjUgMS4yNSwwLjAwMzkwNjI1IDEuMTI1LDAuMDE1NjI1IDEuMDA3ODEyLDAuMDM1MTU2MiAwLjg1MTU2MiwwLjA0Njg3NSAwLjY1NjI1LDAuMDQ2ODc1IFogbSAwLDAiCiAgICAgICAgICAgaWQ9InBhdGgzOCIgLz4KICAgICAgPC9zeW1ib2w+CiAgICAgIDxzeW1ib2wKICAgICAgICAgb3ZlcmZsb3c9InZpc2libGUiCiAgICAgICAgIGlkPSJnbHlwaDMtMCI+CiAgICAgICAgPHBhdGgKICAgICAgICAgICBzdHlsZT0ic3Ryb2tlOm5vbmUiCiAgICAgICAgICAgZD0iIgogICAgICAgICAgIGlkPSJwYXRoNDEiIC8+CiAgICAgIDwvc3ltYm9sPgogICAgICA8c3ltYm9sCiAgICAgICAgIG92ZXJmbG93PSJ2aXNpYmxlIgogICAgICAgICBpZD0iZ2x5cGgzLTEiPgogICAgICAgIDxwYXRoCiAgICAgICAgICAgc3R5bGU9InN0cm9rZTpub25lIgogICAgICAgICAgIGQ9Im0gNi4wMzEyNSwtOC4wMzEyNSBjIDAuMDE1NjI1LC0wLjA0Njg3NSAwLjA0Njg3NSwtMC4xMDkzNzUgMC4wNDY4NzUsLTAuMTcxODc1IDAsLTAuMTI1IC0wLjEyNSwtMC4xMjUgLTAuMTU2MjUsLTAuMTI1IDAsMCAtMC41OTM3NSwwLjA0Njg3NSAtMC42NTYyNSwwLjA2MjUgQyA1LjA2MjUsLTguMjUgNC44OTA2MjUsLTguMjM0Mzc1IDQuNjcxODc1LC04LjIxODc1IDQuMzc1LC04LjIwMzEyNSA0LjI4MTI1LC04LjE4NzUgNC4yODEyNSwtNy45Njg3NSBjIDAsMC4xMjUgMC4wOTM3NSwwLjEyNSAwLjI2NTYyNSwwLjEyNSAwLjU5Mzc1LDAgMC41OTM3NSwwLjEwOTM3NSAwLjU5Mzc1LDAuMjE4NzUgMCwwLjA3ODEyNSAtMC4wMTU2MjUsMC4xNzE4NzUgLTAuMDMxMjUsMC4yMDMxMjUgTCA0LjM3NSwtNC41IEMgNC4yNSwtNC44MTI1IDMuOTIxODc1LC01LjI5Njg3NSAzLjI5Njg3NSwtNS4yOTY4NzUgYyAtMS4zNTkzNzUsMCAtMi44MTI1LDEuNzUgLTIuODEyNSwzLjUzMTI1IDAsMS4xODc1IDAuNjg3NSwxLjg5MDYyNSAxLjUsMS44OTA2MjUgMC42NzE4NzUsMCAxLjIzNDM3NSwtMC41MTU2MjUgMS41NjI1LC0wLjkyMTg3NSAwLjEyNSwwLjcxODc1IDAuNjg3NSwwLjkyMTg3NSAxLjA0Njg3NSwwLjkyMTg3NSAwLjM1OTM3NSwwIDAuNjU2MjUsLTAuMjE4NzUgMC44NTkzNzUsLTAuNjU2MjUgQyA1LjY1NjI1LC0wLjkzNzUgNS44MTI1LC0xLjY3MTg3NSA1LjgxMjUsLTEuNzE4NzUgYyAwLC0wLjA2MjUgLTAuMDQ2ODc1LC0wLjEwOTM3NSAtMC4xMDkzNzUsLTAuMTA5Mzc1IC0wLjEwOTM3NSwwIC0wLjEyNSwwLjA2MjUgLTAuMTcxODc1LDAuMjUgQyA1LjM1OTM3NSwtMC44NzUgNS4xMjUsLTAuMTI1IDQuNjI1LC0wLjEyNSBjIC0wLjM0Mzc1LDAgLTAuMzU5Mzc1LC0wLjMxMjUgLTAuMzU5Mzc1LC0wLjU0Njg3NSAwLC0wLjA0Njg3NSAwLC0wLjI5Njg3NSAwLjA3ODEyNSwtMC42NDA2MjUgeiBtIC0yLjQyMTg3NSw2LjYwOTM3NSBjIC0wLjA2MjUsMC4yMDMxMjUgLTAuMDYyNSwwLjIxODc1IC0wLjIxODc1LDAuNDUzMTI1IEMgMy4xMjUsLTAuNjQwNjI1IDIuNTkzNzUsLTAuMTI1IDIuMDMxMjUsLTAuMTI1IGMgLTAuNSwwIC0wLjc2NTYyNSwtMC40Mzc1IC0wLjc2NTYyNSwtMS4xNDA2MjUgMCwtMC42NzE4NzUgMC4zNTkzNzUsLTIuMDE1NjI1IDAuNTkzNzUsLTIuNTE1NjI1IDAuNDA2MjUsLTAuODQzNzUgMC45Njg3NSwtMS4yNjU2MjUgMS40Mzc1LC0xLjI2NTYyNSAwLjc5Njg3NSwwIDAuOTUzMTI1LDAuOTg0Mzc1IDAuOTUzMTI1LDEuMDc4MTI1IDAsMC4wMTU2MjUgLTAuMDMxMjUsMC4xNzE4NzUgLTAuMDQ2ODc1LDAuMTg3NSB6IG0gMCwwIgogICAgICAgICAgIGlkPSJwYXRoNDQiIC8+CiAgICAgIDwvc3ltYm9sPgogICAgICA8c3ltYm9sCiAgICAgICAgIG92ZXJmbG93PSJ2aXNpYmxlIgogICAgICAgICBpZD0iZ2x5cGg0LTAiPgogICAgICAgIDxwYXRoCiAgICAgICAgICAgc3R5bGU9InN0cm9rZTpub25lIgogICAgICAgICAgIGQ9IiIKICAgICAgICAgICBpZD0icGF0aDQ3IiAvPgogICAgICA8L3N5bWJvbD4KICAgICAgPHN5bWJvbAogICAgICAgICBvdmVyZmxvdz0idmlzaWJsZSIKICAgICAgICAgaWQ9ImdseXBoNC0xIj4KICAgICAgICA8cGF0aAogICAgICAgICAgIHN0eWxlPSJzdHJva2U6bm9uZSIKICAgICAgICAgICBkPSJNIDguMzQzNzUsLTUuMzI4MTI1IEMgOC40MDYyNSwtNS41NDY4NzUgOC40ODQzNzUsLTUuOTIxODc1IDguNDg0Mzc1LC02IGMgMCwtMC4zMjgxMjUgLTAuMjM0Mzc1LC0wLjY1NjI1IC0wLjcwMzEyNSwtMC42NTYyNSAtMC4yMzQzNzUsMCAtMC43OTY4NzUsMC4xMDkzNzUgLTAuOTg0Mzc1LDAuNzk2ODc1IC0wLjI1LDAuOTM3NSAtMC41MzEyNSwyLjAzMTI1IC0wLjc2NTYyNSwzLjA0Njg3NSAtMC4xMjUsMC41MzEyNSAtMC4xMjUsMC43MzQzNzUgLTAuMTI1LDAuOTIxODc1IDAsMC40MDYyNSAwLjA0Njg3NSwwLjM5MDYyNSAwLjA0Njg3NSwwLjQ4NDM3NSAwLDAuMDc4MTI1IC0wLjQwNjI1LDAuOTg0Mzc1IC0xLjI2NTYyNSwwLjk4NDM3NSAtMS4yMTg3NSwwIC0xLjIxODc1LC0wLjkwNjI1IC0xLjIxODc1LC0xLjIzNDM3NSAwLC0wLjYyNSAwLjE3MTg3NSwtMS4zMjgxMjUgMC43ODEyNSwtMi44NTkzNzUgMC4xMDkzNzUsLTAuMjk2ODc1IDAuMjY1NjI1LC0wLjY1NjI1IDAuMjY1NjI1LC0wLjkyMTg3NSAwLC0wLjg1OTM3NSAtMC44NzUsLTEuMzQzNzUgLTEuNzAzMTI1LC0xLjM0Mzc1IC0xLjU3ODEyNSwwIC0yLjMyODEyNSwyLjA0Njg3NSAtMi4zMjgxMjUsMi4zNDM3NSAwLDAuMjAzMTI1IDAuMjE4NzUsMC4yMDMxMjUgMC4zNTkzNzUsMC4yMDMxMjUgMC4xNzE4NzUsMCAwLjI4MTI1LDAgMC4zNDM3NSwtMC4xODc1IDAuNSwtMS42NzE4NzUgMS4yOTY4NzUsLTEuODEyNSAxLjU0Njg3NSwtMS44MTI1IDAuMDc4MTI1LDAgMC4yNSwwIDAuMjUsMC4zMTI1IDAsMC4zNDM3NSAtMC4xNTYyNSwwLjcxODc1IC0wLjMyODEyNSwxLjE4NzUgLTAuNTkzNzUsMS40NTMxMjUgLTAuODEyNSwyLjE4NzUgLTAuODEyNSwyLjgxMjUgMCwxLjY1NjI1IDEuNDM3NSwyLjA0Njg3NSAyLjczNDM3NSwyLjA0Njg3NSBDIDQuODc1LDAuMTI1IDUuNTYyNSwwLjEyNSA2LjI1LC0wLjcxODc1IDYuNjU2MjUsLTAuMjAzMTI1IDcuMzI4MTI1LDAuMTI1IDguNSwwLjEyNSBjIDAuOTA2MjUsMCAxLjcwMzEyNSwtMC40Mzc1IDIuMzkwNjI1LC0xLjc2NTYyNSAwLjU5Mzc1LC0xLjEyNSAxLjA2MjUsLTMuMDE1NjI1IDEuMDYyNSwtMy43OTY4NzUgMCwtMS4zNTkzNzUgLTEsLTEuMzU5Mzc1IC0xLjAxNTYyNSwtMS4zNTkzNzUgLTAuNTc4MTI1LDAgLTEuMTQwNjI1LDAuNjA5Mzc1IC0xLjE0MDYyNSwxLjE0MDYyNSAwLDAuNDIxODc1IDAuMzEyNSwwLjU5Mzc1IDAuNDUzMTI1LDAuNjcxODc1IDAuNTc4MTI1LDAuMzQzNzUgMC43NSwwLjYyNSAwLjc1LDAuOTUzMTI1IDAsMC4yMTg3NSAtMC4zNzUsMS42NDA2MjUgLTAuODQzNzUsMi40Njg3NSAtMC40MjE4NzUsMC43NSAtMC45MDYyNSwxLjE0MDYyNSAtMS41NDY4NzUsMS4xNDA2MjUgLTEuMDc4MTI1LDAgLTEuMDkzNzUsLTAuODkwNjI1IC0xLjA5Mzc1LC0xLjE4NzUgQyA3LjUxNTYyNSwtMiA3LjU3ODEyNSwtMi4yMTg3NSA3Ljc1LC0yLjk2ODc1IDcuODU5Mzc1LC0zLjQwNjI1IDguMDQ2ODc1LC00LjE0MDYyNSA4LjEyNSwtNC40ODQzNzUgWiBtIDAsMCIKICAgICAgICAgICBpZD0icGF0aDUwIiAvPgogICAgICA8L3N5bWJvbD4KICAgICAgPHN5bWJvbAogICAgICAgICBvdmVyZmxvdz0idmlzaWJsZSIKICAgICAgICAgaWQ9ImdseXBoNC0yIj4KICAgICAgICA8cGF0aAogICAgICAgICAgIHN0eWxlPSJzdHJva2U6bm9uZSIKICAgICAgICAgICBkPSJtIDguMDQ2ODc1LC02LjAxNTYyNSBjIC0wLjU0Njg3NSwwLjE1NjI1IC0wLjgxMjUsMC42NTYyNSAtMC44MTI1LDEuMDMxMjUgMCwwLjMyODEyNSAwLjI1LDAuNjg3NSAwLjc1LDAuNjg3NSBDIDguNSwtNC4yOTY4NzUgOS4wNjI1LC00LjcxODc1IDkuMDYyNSwtNS40NTMxMjUgOS4wNjI1LC02LjI1IDguMjY1NjI1LC02Ljc4MTI1IDcuMzQzNzUsLTYuNzgxMjUgNi41LC02Ljc4MTI1IDUuOTM3NSwtNi4xNDA2MjUgNS43NSwtNS44NTkzNzUgNS4zNzUsLTYuNSA0LjUzMTI1LC02Ljc4MTI1IDMuNjcxODc1LC02Ljc4MTI1IGMgLTEuODkwNjI1LDAgLTIuOTA2MjUsMS44NDM3NSAtMi45MDYyNSwyLjM0Mzc1IDAsMC4yMDMxMjUgMC4yMTg3NSwwLjIwMzEyNSAwLjM1OTM3NSwwLjIwMzEyNSAwLjE4NzUsMCAwLjI4MTI1LDAgMC4zNDM3NSwtMC4xODc1IDAuNDM3NSwtMS4zNzUgMS41MTU2MjUsLTEuODEyNSAyLjEyNSwtMS44MTI1IDAuNTc4MTI1LDAgMC44NDM3NSwwLjI2NTYyNSAwLjg0Mzc1LDAuNzUgMCwwLjI4MTI1IC0wLjIwMzEyNSwxLjEwOTM3NSAtMC4zNDM3NSwxLjY0MDYyNSBsIC0wLjUxNTYyNSwyLjA2MjUgQyAzLjM1OTM3NSwtMC44NzUgMi44MTI1LC0wLjQyMTg3NSAyLjMxMjUsLTAuNDIxODc1IGMgLTAuMDc4MTI1LDAgLTAuNDIxODc1LDAgLTAuNzE4NzUsLTAuMjE4NzUgMC41MzEyNSwtMC4xNTYyNSAwLjgxMjUsLTAuNjcxODc1IDAuODEyNSwtMS4wNDY4NzUgMCwtMC4zMjgxMjUgLTAuMjY1NjI1LC0wLjY4NzUgLTAuNzUsLTAuNjg3NSAtMC41MzEyNSwwIC0xLjA5Mzc1LDAuNDM3NSAtMS4wOTM3NSwxLjE3MTg3NSAwLDAuNzk2ODc1IDAuNzk2ODc1LDEuMzI4MTI1IDEuNzE4NzUsMS4zMjgxMjUgMC44NTkzNzUsMCAxLjQwNjI1LC0wLjY1NjI1IDEuNjA5Mzc1LC0wLjkyMTg3NSAwLjM3NSwwLjYyNSAxLjIwMzEyNSwwLjkyMTg3NSAyLjA2MjUsMC45MjE4NzUgMS44OTA2MjUsMCAyLjkwNjI1LC0xLjg0Mzc1IDIuOTA2MjUsLTIuMzQzNzUgMCwtMC4yMTg3NSAtMC4yMTg3NSwtMC4yMTg3NSAtMC4zNTkzNzUsLTAuMjE4NzUgLTAuMTcxODc1LDAgLTAuMjgxMjUsMCAtMC4zNDM3NSwwLjIwMzEyNSAtMC40Mzc1LDEuMzU5Mzc1IC0xLjUxNTYyNSwxLjgxMjUgLTIuMTI1LDEuODEyNSAtMC41NzgxMjUsMCAtMC44NDM3NSwtMC4yNjU2MjUgLTAuODQzNzUsLTAuNzUgMCwtMC4zMTI1IDAuMjAzMTI1LC0xLjEwOTM3NSAwLjMyODEyNSwtMS42NTYyNSBDIDUuNjI1LC0zLjIxODc1IDUuOTY4NzUsLTQuNjQwNjI1IDYuMDQ2ODc1LC00Ljg3NSBjIDAuMjE4NzUsLTAuOTA2MjUgMC43NSwtMS4zNTkzNzUgMS4yNjU2MjUsLTEuMzU5Mzc1IDAuMDc4MTI1LDAgMC40MjE4NzUsMCAwLjczNDM3NSwwLjIxODc1IHogbSAwLDAiCiAgICAgICAgICAgaWQ9InBhdGg1MyIgLz4KICAgICAgPC9zeW1ib2w+CiAgICAgIDxzeW1ib2wKICAgICAgICAgb3ZlcmZsb3c9InZpc2libGUiCiAgICAgICAgIGlkPSJnbHlwaDUtMCI+CiAgICAgICAgPHBhdGgKICAgICAgICAgICBzdHlsZT0ic3Ryb2tlOm5vbmUiCiAgICAgICAgICAgZD0iIgogICAgICAgICAgIGlkPSJwYXRoNTYiIC8+CiAgICAgIDwvc3ltYm9sPgogICAgICA8c3ltYm9sCiAgICAgICAgIG92ZXJmbG93PSJ2aXNpYmxlIgogICAgICAgICBpZD0iZ2x5cGg1LTEiPgogICAgICAgIDxwYXRoCiAgICAgICAgICAgc3R5bGU9InN0cm9rZTpub25lIgogICAgICAgICAgIGQ9Ik0gNC45MDYyNSwtNy41MzEyNSBIIDguMjUgYyAwLjIwMzEyNSwwIDAuNDIxODc1LDAgMC40MjE4NzUsLTAuMjUgMCwtMC4yMzQzNzUgLTAuMjE4NzUsLTAuMjM0Mzc1IC0wLjQyMTg3NSwtMC4yMzQzNzUgSCAxLjA5Mzc1IGMgLTAuMTg3NSwwIC0wLjQzNzUsMCAtMC40Mzc1LDAuMjM0Mzc1IDAsMC4yNSAwLjI1LDAuMjUgMC40Mzc1LDAuMjUgaCAzLjMyODEyNSB2IDcuMDkzNzUgYyAwLDAuMTg3NSAwLDAuNDM3NSAwLjI1LDAuNDM3NSBDIDQuOTA2MjUsMCA0LjkwNjI1LC0wLjIxODc1IDQuOTA2MjUsLTAuNDM3NSBaIG0gMCwwIgogICAgICAgICAgIGlkPSJwYXRoNTkiIC8+CiAgICAgIDwvc3ltYm9sPgogICAgICA8c3ltYm9sCiAgICAgICAgIG92ZXJmbG93PSJ2aXNpYmxlIgogICAgICAgICBpZD0iZ2x5cGg2LTAiPgogICAgICAgIDxwYXRoCiAgICAgICAgICAgc3R5bGU9InN0cm9rZTpub25lIgogICAgICAgICAgIGQ9IiIKICAgICAgICAgICBpZD0icGF0aDYyIiAvPgogICAgICA8L3N5bWJvbD4KICAgICAgPHN5bWJvbAogICAgICAgICBvdmVyZmxvdz0idmlzaWJsZSIKICAgICAgICAgaWQ9ImdseXBoNi0xIj4KICAgICAgICA8cGF0aAogICAgICAgICAgIHN0eWxlPSJzdHJva2U6bm9uZSIKICAgICAgICAgICBkPSJNIDUuOTg0Mzc1LC0zLjQ2ODc1IEggMTAuMTI1IGMgMC4yMDMxMjUsMCAwLjQ4NDM3NSwwIDAuNDg0Mzc1LC0wLjI2NTYyNSAwLC0wLjI4MTI1IC0wLjI2NTYyNSwtMC4yODEyNSAtMC40ODQzNzUsLTAuMjgxMjUgSCA1Ljk4NDM3NSBWIC04LjE1NjI1IGMgMCwtMC4yMTg3NSAwLC0wLjQ4NDM3NSAtMC4yNjU2MjUsLTAuNDg0Mzc1IC0wLjI4MTI1LDAgLTAuMjgxMjUsMC4yNSAtMC4yODEyNSwwLjQ4NDM3NSB2IDQuMTQwNjI1IEggMS4yOTY4NzUgYyAtMC4yMTg3NSwwIC0wLjQ4NDM3NSwwIC0wLjQ4NDM3NSwwLjI2NTYyNSAwLDAuMjgxMjUgMC4yNSwwLjI4MTI1IDAuNDg0Mzc1LDAuMjgxMjUgSCA1LjQzNzUgdiA0LjE0MDYyNSBjIDAsMC4yMTg3NSAwLDAuNDg0Mzc1IDAuMjY1NjI1LDAuNDg0Mzc1IDAuMjgxMjUsMCAwLjI4MTI1LC0wLjI1IDAuMjgxMjUsLTAuNDg0Mzc1IHogbSAwLDAiCiAgICAgICAgICAgaWQ9InBhdGg2NSIgLz4KICAgICAgPC9zeW1ib2w+CiAgICAgIDxzeW1ib2wKICAgICAgICAgb3ZlcmZsb3c9InZpc2libGUiCiAgICAgICAgIGlkPSJnbHlwaDctMCI+CiAgICAgICAgPHBhdGgKICAgICAgICAgICBzdHlsZT0ic3Ryb2tlOm5vbmUiCiAgICAgICAgICAgZD0ibSAwLjUzMTI1LDAgdiAtNC45Njg3NSBoIDQuMTg3NSBWIDAgWiBtIDAuNTE1NjI1LC0wLjUzMTI1IGggMy4xNTYyNSBWIC00LjQzNzUgaCAtMy4xNTYyNSB6IG0gMCwwIgogICAgICAgICAgIGlkPSJwYXRoNjgiIC8+CiAgICAgIDwvc3ltYm9sPgogICAgICA8c3ltYm9sCiAgICAgICAgIG92ZXJmbG93PSJ2aXNpYmxlIgogICAgICAgICBpZD0iZ2x5cGg3LTEiPgogICAgICAgIDxwYXRoCiAgICAgICAgICAgc3R5bGU9InN0cm9rZTpub25lIgogICAgICAgICAgIGQ9Ik0gMS4xMjUsMC4wMzEyNSBDIDEuMDcwMzEyLDAuMDMxMjUgMS4wMzEyNSwwLjAxOTUzMTIgMSwwIDAuOTc2NTYyLC0wLjAzMTI1IDAuOTY4NzUsLTAuMDYyNSAwLjk2ODc1LC0wLjA5Mzc1IGMgMCwtMC4wNjI1IDAuMDUwNzgxLC0wLjEwOTM3NSAwLjE1NjI1LC0wLjE0MDYyNSAwLjI1NzgxMiwtMC4wNzAzMTMgMC40NzI2NTYsLTAuMTMyODEzIDAuNjQwNjI1LC0wLjE4NzUgMC4xNzU3ODEsLTAuMDYyNSAwLjMwNDY4NywtMC4xNDQ1MzEgMC4zOTA2MjUsLTAuMjUgMC4wODIwMzEsLTAuMTEzMjgxIDAuMTI1LC0wLjI2OTUzMSAwLjEyNSwtMC40Njg3NSBWIC01LjE1NjI1IGMgMCwtMC4xMzI4MTIgLTAuMDQyOTY5LC0wLjIzNDM3NSAtMC4xMjUsLTAuMjk2ODc1IC0wLjA4NTkzOCwtMC4wNzAzMTMgLTAuMTk1MzEyLC0wLjEyNSAtMC4zMjgxMjUsLTAuMTU2MjUgLTAuMTM2NzE5LC0wLjAzMTI1IC0wLjI4MTI1LC0wLjA0Njg3NSAtMC40Mzc1LC0wLjA0Njg3NSAtMC4wNjI1LC0wLjAwNzgxIC0wLjEyNSwtMC4wMjM0MzggLTAuMTg3NSwtMC4wNDY4NzUgQyAxLjE0ODQzOCwtNS43MzQzNzUgMS4xMjUsLTUuNzgxMjUgMS4xMjUsLTUuODQzNzUgYyAwLC0wLjAzOTA2MiAwLjAyMzQzOCwtMC4wNzgxMjUgMC4wNzgxMjUsLTAuMTA5Mzc1IDAuMDUwNzgxLC0wLjAzOTA2MyAwLjExMzI4MSwtMC4wNjY0MDYgMC4xODc1LC0wLjA3ODEyNSAwLjMxMjUsLTAuMDM5MDYyIDAuNTkzNzUsLTAuMDk3NjU2IDAuODQzNzUsLTAuMTcxODc1IDAuMjUsLTAuMDgyMDMxIDAuNDkyMTg3LC0wLjIzODI4MSAwLjczNDM3NSwtMC40Njg3NSAwLC0wLjAwNzgxIDAuMDAzOTEsLTAuMDE1NjI1IDAuMDE1NjI1LC0wLjAxNTYyNSAwLjAwNzgxLDAgMC4wMTk1MzEsMCAwLjAzMTI1LDAgMC4wMzEyNSwwIDAuMDYyNSwwLjAxMTcxOSAwLjA5Mzc1LDAuMDMxMjUgMC4wMzEyNSwwLjAxMTcxOSAwLjAzOTA2MywwLjAzMTI1IDAuMDMxMjUsMC4wNjI1IEMgMy4xMjg5MDYsLTYuNDg4MjgxIDMuMTE3MTg4LC02LjM3NSAzLjEwOTM3NSwtNi4yNSAzLjA5NzY1NiwtNi4xMjUgMy4wOTM3NSwtNS45ODgyODEgMy4wOTM3NSwtNS44NDM3NSB2IDQuODI4MTI1IGMgMCwwLjE3OTY4NyAwLjAzMTI1LDAuMzEyNSAwLjA5Mzc1LDAuNDA2MjUgMC4wNzAzMTIsMC4wODU5MzcgMC4xODc1LDAuMTUyMzQ0IDAuMzQzNzUsMC4yMDMxMjUgMC4xNjQwNjIsMC4wNTQ2ODggMC4zOTA2MjUsMC4xMTcxODggMC42NzE4NzUsMC4xODc1IDAuMDUwNzgxLDAuMDExNzE5IDAuMDkzNzUsMC4wMjczNDQgMC4xMjUsMC4wNDY4NzUgMC4wMzkwNjMsMC4wMjM0MzcgMC4wNjI1LDAuMDU0Njg3IDAuMDYyNSwwLjA5Mzc1IDAsMC4wNzQyMTg3NSAtMC4wNTQ2ODcsMC4xMDkzNzUgLTAuMTU2MjUsMC4xMDkzNzUgLTAuMTg3NSwwIC0wLjM2NzE4NywtMC4wMDc4MTI1IC0wLjUzMTI1LC0wLjAxNTYyNSBDIDMuNTM1MTU2LDAuMDAzOTA2MjUgMy4zNzUsMCAzLjIxODc1LDAgMy4wNjI1LC0wLjAwNzgxMjUgMi44OTA2MjUsLTAuMDE1NjI1IDIuNzAzMTI1LC0wLjAxNTYyNSAyLjUxNTYyNSwtMC4wMTU2MjUgMi4zMzIwMzEsLTAuMDA3ODEyNSAyLjE1NjI1LDAgMS45ODgyODEsMCAxLjgyMDMxMiwwLjAwMzkwNjI1IDEuNjU2MjUsMC4wMTU2MjUgMS40ODgyODEsMC4wMjM0Mzc1IDEuMzEyNSwwLjAzMTI1IDEuMTI1LDAuMDMxMjUgWiBtIDAsMCIKICAgICAgICAgICBpZD0icGF0aDcxIiAvPgogICAgICA8L3N5bWJvbD4KICAgIDwvZz4KICA8L2RlZnM+CiAgPGcKICAgICBpZD0iZzUzMSIKICAgICB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTc3LjkwMjI3LC0xNzUuNjMyNzQpIj4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojNTc2ZTczO3N0cm9rZS13aWR0aDowLjc5NzAxO3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgICBkPSJtIDIwNi45MTc5NywxOTAuMTk5MjIgYyAwLC03LjgyNDIyIC02LjMzOTg1LC0xNC4xNjc5NyAtMTQuMTY0MDYsLTE0LjE2Nzk3IC03LjgyODEzLDAgLTE0LjE2Nzk3LDYuMzQzNzUgLTE0LjE2Nzk3LDE0LjE2Nzk3IDAsNy44MjQyMiA2LjMzOTg0LDE0LjE2Nzk3IDE0LjE2Nzk3LDE0LjE2Nzk3IDcuODI0MjEsMCAxNC4xNjQwNiwtNi4zNDM3NSAxNC4xNjQwNiwtMTQuMTY3OTcgeiBtIDAsMCIKICAgICAgIGlkPSJwYXRoODAiIC8+CiAgICA8dXNlCiAgICAgICB4bGluazpocmVmPSIjZ2x5cGgwLTEiCiAgICAgICB4PSIxODUuMzkyIgogICAgICAgeT0iMTkyLjE0NiIKICAgICAgIGlkPSJ1c2U4MiIKICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgaGVpZ2h0PSIxMDAlIgogICAgICAgc3R5bGU9ImZpbGw6I2QxMzU3ZjtmaWxsLW9wYWNpdHk6MSIgLz4KICAgIDx1c2UKICAgICAgIHhsaW5rOmhyZWY9IiNnbHlwaDEtMSIKICAgICAgIHg9IjE5My43MzkiCiAgICAgICB5PSIxOTQuNzEyMDEiCiAgICAgICBpZD0idXNlODYiCiAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgIGhlaWdodD0iMTAwJSIKICAgICAgIHN0eWxlPSJmaWxsOiNkMTM1N2Y7ZmlsbC1vcGFjaXR5OjEiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6IzU3NmU3MztzdHJva2Utd2lkdGg6MC43OTcwMTtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2Utb3BhY2l0eToxIgogICAgICAgZD0ibSAyMDYuOTE3OTcsMjM1LjU1NDY5IGMgMCwtNy44MjQyMiAtNi4zMzk4NSwtMTQuMTY3OTcgLTE0LjE2NDA2LC0xNC4xNjc5NyAtNy44MjgxMywwIC0xNC4xNjc5Nyw2LjM0Mzc1IC0xNC4xNjc5NywxNC4xNjc5NyAwLDcuODI0MjIgNi4zMzk4NCwxNC4xNjc5NyAxNC4xNjc5NywxNC4xNjc5NyA3LjgyNDIxLDAgMTQuMTY0MDYsLTYuMzQzNzUgMTQuMTY0MDYsLTE0LjE2Nzk3IHogbSAwLDAiCiAgICAgICBpZD0icGF0aDkwIiAvPgogICAgPHVzZQogICAgICAgeGxpbms6aHJlZj0iI2dseXBoMC0xIgogICAgICAgeD0iMTg1LjM5MiIKICAgICAgIHk9IjIzNy41MDEwMSIKICAgICAgIGlkPSJ1c2U5MiIKICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgaGVpZ2h0PSIxMDAlIgogICAgICAgc3R5bGU9ImZpbGw6I2QxMzU3ZjtmaWxsLW9wYWNpdHk6MSIgLz4KICAgIDx1c2UKICAgICAgIHhsaW5rOmhyZWY9IiNnbHlwaDEtMiIKICAgICAgIHg9IjE5My43MzkiCiAgICAgICB5PSIyNDAuMDY3IgogICAgICAgaWQ9InVzZTk2IgogICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICBoZWlnaHQ9IjEwMCUiCiAgICAgICBzdHlsZT0iZmlsbDojZDEzNTdmO2ZpbGwtb3BhY2l0eToxIiAvPgogICAgPHVzZQogICAgICAgeGxpbms6aHJlZj0iI2dseXBoMi0xIgogICAgICAgeD0iMTkxLjAyNjk5IgogICAgICAgeT0iMjgwLjUyODAyIgogICAgICAgaWQ9InVzZTEwMCIKICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgaGVpZ2h0PSIxMDAlIgogICAgICAgc3R5bGU9ImZpbGw6IzAwMjgzNTtmaWxsLW9wYWNpdHk6MSIgLz4KICAgIDx1c2UKICAgICAgIHhsaW5rOmhyZWY9IiNnbHlwaDItMSIKICAgICAgIHg9IjE5MS4wMjY5OSIKICAgICAgIHk9IjI4NC41MTQwMSIKICAgICAgIGlkPSJ1c2UxMDQiCiAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgIGhlaWdodD0iMTAwJSIKICAgICAgIHN0eWxlPSJmaWxsOiMwMDI4MzU7ZmlsbC1vcGFjaXR5OjEiIC8+CiAgICA8dXNlCiAgICAgICB4bGluazpocmVmPSIjZ2x5cGgyLTEiCiAgICAgICB4PSIxOTEuMDI2OTkiCiAgICAgICB5PSIyODguNDk4OTkiCiAgICAgICBpZD0idXNlMTA4IgogICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICBoZWlnaHQ9IjEwMCUiCiAgICAgICBzdHlsZT0iZmlsbDojMDAyODM1O2ZpbGwtb3BhY2l0eToxIiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiM1NzZlNzM7c3Ryb2tlLXdpZHRoOjAuNzk3MDE7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgIGQ9Im0gMjA3LjIwMzEyLDMyNi4yNjU2MyBjIDAsLTcuOTg0MzggLTYuNDY4NzUsLTE0LjQ1MzEzIC0xNC40NDkyMSwtMTQuNDUzMTMgLTcuOTg0MzgsMCAtMTQuNDUzMTMsNi40Njg3NSAtMTQuNDUzMTMsMTQuNDUzMTMgMCw3Ljk4MDQ2IDYuNDY4NzUsMTQuNDQ5MjEgMTQuNDUzMTMsMTQuNDQ5MjEgNy45ODA0NiwwIDE0LjQ0OTIxLC02LjQ2ODc1IDE0LjQ0OTIxLC0xNC40NDkyMSB6IG0gMCwwIgogICAgICAgaWQ9InBhdGgxMTIiIC8+CiAgICA8dXNlCiAgICAgICB4bGluazpocmVmPSIjZ2x5cGgwLTEiCiAgICAgICB4PSIxODUuMjc2OTkiCiAgICAgICB5PSIzMjcuOTExMDEiCiAgICAgICBpZD0idXNlMTE0IgogICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICBoZWlnaHQ9IjEwMCUiCiAgICAgICBzdHlsZT0iZmlsbDojZDEzNTdmO2ZpbGwtb3BhY2l0eToxIiAvPgogICAgPHVzZQogICAgICAgeGxpbms6aHJlZj0iI2dseXBoMy0xIgogICAgICAgeD0iMTkzLjYyMzk5IgogICAgICAgeT0iMzMxLjA3NyIKICAgICAgIGlkPSJ1c2UxMTgiCiAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgIGhlaWdodD0iMTAwJSIKICAgICAgIHN0eWxlPSJmaWxsOiNkMTM1N2Y7ZmlsbC1vcGFjaXR5OjEiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6IzU3NmU3MztzdHJva2Utd2lkdGg6MC43OTcwMTtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2Utb3BhY2l0eToxIgogICAgICAgZD0ibSAyMDYuODg2NzIsMzcxLjYyMTA5IGMgMCwtNy44MDg1OSAtNi4zMjgxMywtMTQuMTM2NzIgLTE0LjEzMjgxLC0xNC4xMzY3MiAtNy44MDg2LDAgLTE0LjEzNjcyLDYuMzI4MTMgLTE0LjEzNjcyLDE0LjEzNjcyIDAsNy44MDQ2OSA2LjMyODEyLDE0LjEzMjgyIDE0LjEzNjcyLDE0LjEzMjgyIDcuODA0NjgsMCAxNC4xMzI4MSwtNi4zMjgxMyAxNC4xMzI4MSwtMTQuMTMyODIgeiBtIDAsMCIKICAgICAgIGlkPSJwYXRoMTIyIiAvPgogICAgPHVzZQogICAgICAgeGxpbms6aHJlZj0iI2dseXBoMC0yIgogICAgICAgeD0iMTg5LjYzIgogICAgICAgeT0iMzc2LjgyOCIKICAgICAgIGlkPSJ1c2UxMjQiCiAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgIGhlaWdodD0iMTAwJSIKICAgICAgIHN0eWxlPSJmaWxsOiNkMTM1N2Y7ZmlsbC1vcGFjaXR5OjEiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6IzU3NmU3MztzdHJva2Utd2lkdGg6MC43OTcwMTtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2Utb3BhY2l0eToxIgogICAgICAgZD0ibSAzNTQuNjQ0NTMsMjgwLjkxMDE2IGMgMCwtMTguOTYwOTQgLTE1LjM3MTA5LC0zNC4zMzIwMyAtMzQuMzMyMDMsLTM0LjMzMjAzIC0xOC45NjA5NCwwIC0zNC4zMzIwMywxNS4zNzEwOSAtMzQuMzMyMDMsMzQuMzMyMDMgMCwxOC45NjA5MyAxNS4zNzEwOSwzNC4zMzIwMyAzNC4zMzIwMywzNC4zMzIwMyAxOC45NjA5NCwwIDM0LjMzMjAzLC0xNS4zNzExIDM0LjMzMjAzLC0zNC4zMzIwMyB6IG0gMCwwIgogICAgICAgaWQ9InBhdGgxMjgiIC8+CiAgICA8dXNlCiAgICAgICB4bGluazpocmVmPSIjZ2x5cGg0LTEiCiAgICAgICB4PSIyOTEuODQyMDEiCiAgICAgICB5PSIyODcuMjI1MDEiCiAgICAgICBpZD0idXNlMTMwIgogICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICBoZWlnaHQ9IjEwMCUiCiAgICAgICBzdHlsZT0iZmlsbDojZDEzNTdmO2ZpbGwtb3BhY2l0eToxIiAvPgogICAgPHVzZQogICAgICAgeGxpbms6aHJlZj0iI2dseXBoNS0xIgogICAgICAgeD0iMzA0LjczMDk5IgogICAgICAgeT0iMjgxLjc4MTAxIgogICAgICAgaWQ9InVzZTEzNCIKICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgaGVpZ2h0PSIxMDAlIgogICAgICAgc3R5bGU9ImZpbGw6I2QxMzU3ZjtmaWxsLW9wYWNpdHk6MSIgLz4KICAgIDx1c2UKICAgICAgIHhsaW5rOmhyZWY9IiNnbHlwaDQtMiIKICAgICAgIHg9IjMxNC41NjI5OSIKICAgICAgIHk9IjI4Ny4yMjUwMSIKICAgICAgIGlkPSJ1c2UxMzgiCiAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgIGhlaWdodD0iMTAwJSIKICAgICAgIHN0eWxlPSJmaWxsOiNkMTM1N2Y7ZmlsbC1vcGFjaXR5OjEiIC8+CiAgICA8dXNlCiAgICAgICB4bGluazpocmVmPSIjZ2x5cGg2LTEiCiAgICAgICB4PSIzMjcuNzgxMDEiCiAgICAgICB5PSIyODcuMjI1MDEiCiAgICAgICBpZD0idXNlMTQyIgogICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICBoZWlnaHQ9IjEwMCUiCiAgICAgICBzdHlsZT0iZmlsbDojZDEzNTdmO2ZpbGwtb3BhY2l0eToxIiAvPgogICAgPHVzZQogICAgICAgeGxpbms6aHJlZj0iI2dseXBoMC0yIgogICAgICAgeD0iMzQyLjUzNzk5IgogICAgICAgeT0iMjg3LjIyNTAxIgogICAgICAgaWQ9InVzZTE0NiIKICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgaGVpZ2h0PSIxMDAlIgogICAgICAgc3R5bGU9ImZpbGw6I2QxMzU3ZjtmaWxsLW9wYWNpdHk6MSIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojNTc2ZTczO3N0cm9rZS13aWR0aDowLjc5NzAxO3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgICBkPSJtIDQzMy43MDMxMiwyODAuOTEwMTYgYyAwLC03LjgyODEzIC02LjM0NzY1LC0xNC4xNzU3OCAtMTQuMTc1NzgsLTE0LjE3NTc4IC03LjgzMjAzLDAgLTE0LjE3NTc4LDYuMzQ3NjUgLTE0LjE3NTc4LDE0LjE3NTc4IDAsNy44MjgxMiA2LjM0Mzc1LDE0LjE3NTc4IDE0LjE3NTc4LDE0LjE3NTc4IDcuODI4MTMsMCAxNC4xNzU3OCwtNi4zNDc2NiAxNC4xNzU3OCwtMTQuMTc1NzggeiBtIDAsMCIKICAgICAgIGlkPSJwYXRoMTUwIiAvPgogICAgPHVzZQogICAgICAgeGxpbms6aHJlZj0iI2dseXBoMC0zIgogICAgICAgeD0iNDE1LjY3NyIKICAgICAgIHk9IjI4Mi42Nzk5OSIKICAgICAgIGlkPSJ1c2UxNTIiCiAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgIGhlaWdodD0iMTAwJSIKICAgICAgIHN0eWxlPSJmaWxsOiNkMTM1N2Y7ZmlsbC1vcGFjaXR5OjEiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6IzU3NmU3MztzdHJva2Utd2lkdGg6MC43OTcwMTtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2Utb3BhY2l0eToxIgogICAgICAgZD0ibSAyMDQuMjk2ODcsMTk4LjQxMDE2IDg1LjkyNTc5LDYxLjEwMTU2IgogICAgICAgaWQ9InBhdGgxNTYiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImZpbGw6IzU3NmU3MztmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6bm9uZSIKICAgICAgIGQ9Im0gMjkyLjMzNTk0LDI2MS4wMTU2MiAtMi4xNzk2OSwtNC4wODk4NCAwLjA2NjQsMi41ODU5NCAtMi40NjQ4NSwwLjc4OTA2IgogICAgICAgaWQ9InBhdGgxNTgiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImZpbGw6IzU3NmU3MztmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6bm9uZSIKICAgICAgIGQ9Ik0gMjkyLjI2NTYyLDI2MC45NjQ4NCAyODksMjU0LjgyODEyIGwgMC4wOTc3LDMuODgyODIgLTMuNjk5MjIsMS4xODM1OSIKICAgICAgIGlkPSJwYXRoMTYwIiAvPgogICAgPHVzZQogICAgICAgeGxpbms6aHJlZj0iI2dseXBoMC00IgogICAgICAgeD0iMjM5Ljg3OSIKICAgICAgIHk9IjIyMy4yNDY5OSIKICAgICAgIGlkPSJ1c2UxNjIiCiAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgIGhlaWdodD0iMTAwJSIKICAgICAgIHN0eWxlPSJmaWxsOiNkMTM1N2Y7ZmlsbC1vcGFjaXR5OjEiIC8+CiAgICA8dXNlCiAgICAgICB4bGluazpocmVmPSIjZ2x5cGgxLTEiCiAgICAgICB4PSIyNTAuMzc4MDEiCiAgICAgICB5PSIyMjUuODEzIgogICAgICAgaWQ9InVzZTE2NiIKICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgaGVpZ2h0PSIxMDAlIgogICAgICAgc3R5bGU9ImZpbGw6I2QxMzU3ZjtmaWxsLW9wYWNpdHk6MSIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojNTc2ZTczO3N0cm9rZS13aWR0aDowLjc5NzAxO3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgICBkPSJtIDIwNi4xMDE1NiwyNDAuMzAwNzggNzkuNDIxODgsMjguMjM4MjgiCiAgICAgICBpZD0icGF0aDE3MCIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDojNTc2ZTczO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lIgogICAgICAgZD0ibSAyODcuOTY0ODQsMjY5LjQxMDE2IC0zLjIxMDkzLC0zLjM0Mzc1IDAuNzY5NTMsMi40NzI2NSAtMi4xNTYyNSwxLjQzMzYiCiAgICAgICBpZD0icGF0aDE3MiIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDojNTc2ZTczO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lIgogICAgICAgZD0ibSAyODcuOTA2MjUsMjY5LjM4NjcyIC00LjgxMjUsLTUuMDExNzIgMS4xNTIzNCwzLjcxMDk0IC0zLjIzODI4LDIuMTQ4NDMiCiAgICAgICBpZD0icGF0aDE3NCIgLz4KICAgIDx1c2UKICAgICAgIHhsaW5rOmhyZWY9IiNnbHlwaDAtNCIKICAgICAgIHg9IjIzOC41OTU5OSIKICAgICAgIHk9IjI0OC4zOSIKICAgICAgIGlkPSJ1c2UxNzYiCiAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgIGhlaWdodD0iMTAwJSIKICAgICAgIHN0eWxlPSJmaWxsOiNkMTM1N2Y7ZmlsbC1vcGFjaXR5OjEiIC8+CiAgICA8dXNlCiAgICAgICB4bGluazpocmVmPSIjZ2x5cGgxLTIiCiAgICAgICB4PSIyNDkuMDk1IgogICAgICAgeT0iMjUwLjk1NTk5IgogICAgICAgaWQ9InVzZTE4MCIKICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgaGVpZ2h0PSIxMDAlIgogICAgICAgc3R5bGU9ImZpbGw6I2QxMzU3ZjtmaWxsLW9wYWNpdHk6MSIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojNTc2ZTczO3N0cm9rZS13aWR0aDowLjc5NzAxO3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgICBkPSJtIDIwNi4zNjcxOSwzMjEuNDIxODggNzkuMTU2MjUsLTI4LjE0NDU0IgogICAgICAgaWQ9InBhdGgxODQiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImZpbGw6IzU3NmU3MztmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6bm9uZSIKICAgICAgIGQ9Im0gMjg3Ljk2NDg0LDI5Mi40MTAxNiAtNC41OTc2NSwtMC41NjI1IDIuMTU2MjUsMS40Mjk2OCAtMC43Njk1MywyLjQ3MjY2IgogICAgICAgaWQ9InBhdGgxODYiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImZpbGw6IzU3NmU3MztmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6bm9uZSIKICAgICAgIGQ9Im0gMjg3Ljk0NTMxLDI5Mi40MTc5NyAtNi44OTg0NCwtMC44NDM3NSAzLjIzODI5LDIuMTQ0NTMgLTEuMTU2MjUsMy43MTA5NCIKICAgICAgIGlkPSJwYXRoMTg4IiAvPgogICAgPHVzZQogICAgICAgeGxpbms6aHJlZj0iI2dseXBoMC00IgogICAgICAgeD0iMjM4LjYxNTAxIgogICAgICAgeT0iMjk5Ljg1MTk5IgogICAgICAgaWQ9InVzZTE5MCIKICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgaGVpZ2h0PSIxMDAlIgogICAgICAgc3R5bGU9ImZpbGw6I2QxMzU3ZjtmaWxsLW9wYWNpdHk6MSIgLz4KICAgIDx1c2UKICAgICAgIHhsaW5rOmhyZWY9IiNnbHlwaDMtMSIKICAgICAgIHg9IjI0OS4xMTQiCiAgICAgICB5PSIzMDMuMDE4MDEiCiAgICAgICBpZD0idXNlMTk0IgogICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICBoZWlnaHQ9IjEwMCUiCiAgICAgICBzdHlsZT0iZmlsbDojZDEzNTdmO2ZpbGwtb3BhY2l0eToxIiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiM1NzZlNzM7c3Ryb2tlLXdpZHRoOjAuNzk3MDE7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgIGQ9Im0gMjA0LjI2OTUzLDM2My40Mjk2OSA4NS45NTMxMywtNjEuMTI1IgogICAgICAgaWQ9InBhdGgxOTgiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImZpbGw6IzU3NmU3MztmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6bm9uZSIKICAgICAgIGQ9Im0gMjkyLjMzNTk0LDMwMC44MDQ2OSAtNC41NzgxMywwLjcxNDg0IDIuNDY0ODUsMC43ODUxNiAtMC4wNjY0LDIuNTg5ODQiCiAgICAgICBpZD0icGF0aDIwMCIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDojNTc2ZTczO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lIgogICAgICAgZD0ibSAyOTIuMjczNDQsMzAwLjg1MTU2IC02Ljg2NzE5LDEuMDY2NDEgMy42OTkyMiwxLjE4MzU5IC0wLjA5NzcsMy44ODI4MSIKICAgICAgIGlkPSJwYXRoMjAyIiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiM1NzZlNzM7c3Ryb2tlLXdpZHRoOjAuNzk3MDE7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgIGQ9Im0gMzU0LjY0NDUzLDI4MC45MTAxNiBoIDQ4LjExNzE5IgogICAgICAgaWQ9InBhdGgyMDQiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImZpbGw6IzU3NmU3MztmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6bm9uZSIKICAgICAgIGQ9Im0gNDA1LjM1MTU2LDI4MC45MTAxNiAtNC4xNDQ1MywtMi4wNzQyMiAxLjU1NDY5LDIuMDc0MjIgLTEuNTU0NjksMi4wNzAzMSIKICAgICAgIGlkPSJwYXRoMjA2IiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOiM1NzZlNzM7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOm5vbmUiCiAgICAgICBkPSJtIDQwNS4zNTE1NiwyODAuOTEwMTYgLTYuMjE4NzUsLTMuMTA5MzggMi4zMzIwMywzLjEwOTM4IC0yLjMzMjAzLDMuMTA5MzciCiAgICAgICBpZD0icGF0aDIwOCIgLz4KICAgIDx1c2UKICAgICAgIHhsaW5rOmhyZWY9IiNnbHlwaDItMiIKICAgICAgIHg9IjM3MC4zNTMiCiAgICAgICB5PSIyNzIuNjYxMDEiCiAgICAgICBpZD0idXNlMjEwIgogICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICBoZWlnaHQ9IjEwMCUiCiAgICAgICBzdHlsZT0iZmlsbDojZDEzNTdmO2ZpbGwtb3BhY2l0eToxIiAvPgogICAgPHVzZQogICAgICAgeGxpbms6aHJlZj0iI2dseXBoMi0zIgogICAgICAgeD0iMzc1LjE5OCIKICAgICAgIHk9IjI3Mi42NjEwMSIKICAgICAgIGlkPSJ1c2UyMTIiCiAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgIGhlaWdodD0iMTAwJSIKICAgICAgIHN0eWxlPSJmaWxsOiNkMTM1N2Y7ZmlsbC1vcGFjaXR5OjEiIC8+CiAgICA8dXNlCiAgICAgICB4bGluazpocmVmPSIjZ2x5cGgyLTQiCiAgICAgICB4PSIzODEuNzIyOTkiCiAgICAgICB5PSIyNzIuNjYxMDEiCiAgICAgICBpZD0idXNlMjE0IgogICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICBoZWlnaHQ9IjEwMCUiCiAgICAgICBzdHlsZT0iZmlsbDojZDEzNTdmO2ZpbGwtb3BhY2l0eToxIiAvPgogIDwvZz4KPC9zdmc+Cg==" class="width45 left20 top-12">
<div class="footer"><hr class="hr_bottom"><div class="multi_column"><h6 class="bottom_left">图神经网络导论</h6><h6 class="bottom_center">神经网络</h6><h6 class="bottom_right">tengzhang@hust.edu.cn</h6></div></div>
</section><section vertical="true" data-notes="" lineno="58" class="slide " data-line="58" data-h="1" data-v="1">
<div class="header"><img class="hust" src=""><div class="title"><hr class="hr_top"><h5>神经网络</h5></div></div>
<p>将神经元广泛并行互连就构成了神经网络</p>
<p class="center"><!--?xml version="1.0" encoding="UTF-8" standalone="no"?-->

<!-- Generated by graphviz version 2.40.1 (20161225.0304)
 -->
<!-- Title: g Pages: 1 -->
<svg width="599pt" height="296pt" viewBox="0.00 0.00 599.00 296.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 292)">
<title>g</title>
<g id="clust1" class="cluster">
<title>cluster_1</title>
<polygon fill="transparent" stroke="#839496" stroke-dasharray="5,2" points="5,-40 5,-247 64,-247 64,-40 5,-40"></polygon>
<text text-anchor="middle" x="34.5" y="-230.4" font-family="fzlz" font-size="14.00" fill="#268bd2">输入层</text>
</g>
<g id="clust2" class="cluster">
<title>cluster_2</title>
<polygon fill="transparent" stroke="#839496" stroke-dasharray="5,2" points="98,-8 98,-280 494,-280 494,-8 98,-8"></polygon>
<text text-anchor="middle" x="296" y="-263.4" font-family="fzlz" font-size="14.00" fill="#268bd2">隐藏层</text>
</g>
<g id="clust11" class="cluster">
<title>cluster_3</title>
<polygon fill="transparent" stroke="#839496" stroke-dasharray="5,2" points="528,-40 528,-247 586,-247 586,-40 528,-40"></polygon>
<text text-anchor="middle" x="557" y="-230.4" font-family="fzlz" font-size="14.00" fill="#268bd2">输出层</text>
</g>
<!-- 11 -->
<g id="node1" class="node">
<title>11</title>
<ellipse fill="none" stroke="#859900" cx="34" cy="-131" rx="18" ry="18"></ellipse>
</g>
<!-- 21 -->
<g id="node4" class="node">
<title>21</title>
<ellipse fill="none" stroke="#859900" cx="124" cy="-229" rx="18" ry="18"></ellipse>
</g>
<!-- 11&#45;&gt;21 -->
<g id="edge1" class="edge">
<title>11-&gt;21</title>
<path fill="none" stroke="#859900" d="M46.5141,-144.6265C62.4999,-162.0332 90.197,-192.1923 107.7846,-211.3432"></path>
<polygon fill="#859900" stroke="#859900" points="111.5922,-215.4893 106.5529,-213.3285 109.9011,-213.6479 108.2101,-211.8066 108.2101,-211.8066 108.2101,-211.8066 109.9011,-213.6479 109.8673,-210.2847 111.5922,-215.4893 111.5922,-215.4893"></polygon>
</g>
<!-- 22 -->
<g id="node5" class="node">
<title>22</title>
<ellipse fill="none" stroke="#586e75" cx="124" cy="-164" rx="18" ry="18"></ellipse>
</g>
<!-- 11&#45;&gt;22 -->
<g id="edge4" class="edge">
<title>11-&gt;22</title>
<path fill="none" stroke="#586e75" d="M50.9283,-137.207C65.4181,-142.52 86.3732,-150.2035 102.131,-155.9814"></path>
<polygon fill="#586e75" stroke="#586e75" points="106.8416,-157.7086 101.3726,-158.0997 104.4944,-156.8479 102.1472,-155.9872 102.1472,-155.9872 102.1472,-155.9872 104.4944,-156.8479 102.9218,-153.8748 106.8416,-157.7086 106.8416,-157.7086"></polygon>
</g>
<!-- 23 -->
<g id="node6" class="node">
<title>23</title>
<ellipse fill="none" stroke="#586e75" cx="124" cy="-99" rx="18" ry="18"></ellipse>
</g>
<!-- 11&#45;&gt;23 -->
<g id="edge5" class="edge">
<title>11-&gt;23</title>
<path fill="none" stroke="#586e75" d="M51.3529,-124.8301C65.763,-119.7065 86.3487,-112.3871 101.9296,-106.8472"></path>
<polygon fill="#586e75" stroke="#586e75" points="107.0056,-105.0425 103.0483,-108.8376 104.65,-105.88 102.2945,-106.7176 102.2945,-106.7176 102.2945,-106.7176 104.65,-105.88 101.5407,-104.5976 107.0056,-105.0425 107.0056,-105.0425"></polygon>
</g>
<!-- 24 -->
<g id="node7" class="node">
<title>24</title>
<ellipse fill="none" stroke="#586e75" cx="124" cy="-34" rx="18" ry="18"></ellipse>
</g>
<!-- 11&#45;&gt;24 -->
<g id="edge6" class="edge">
<title>11-&gt;24</title>
<path fill="none" stroke="#586e75" d="M46.576,-117.6318C51.9532,-111.9039 58.2945,-105.1332 64,-99 78.9777,-82.8995 95.9713,-64.4749 108.04,-51.363"></path>
<polygon fill="#586e75" stroke="#586e75" points="111.6197,-47.4728 109.8897,-52.6757 109.9269,-49.3125 108.234,-51.1522 108.234,-51.1522 108.234,-51.1522 109.9269,-49.3125 106.5783,-49.6286 111.6197,-47.4728 111.6197,-47.4728"></polygon>
</g>
<!-- 12 -->
<g id="node2" class="node">
<title>12</title>
<ellipse fill="none" stroke="#859900" cx="34" cy="-66" rx="18" ry="18"></ellipse>
</g>
<!-- 12&#45;&gt;21 -->
<g id="edge2" class="edge">
<title>12-&gt;21</title>
<path fill="none" stroke="#859900" d="M47.2911,-78.191C53.0511,-84.0365 59.4931,-91.4106 64,-99 87.5398,-138.6398 75.5691,-156.7224 98,-197 100.8265,-202.0753 104.4739,-207.1487 108.1376,-211.7113"></path>
<polygon fill="#859900" stroke="#859900" points="111.4838,-215.7433 106.5592,-213.3326 109.8872,-213.8195 108.2906,-211.8957 108.2906,-211.8957 108.2906,-211.8957 109.8872,-213.8195 110.022,-210.4588 111.4838,-215.7433 111.4838,-215.7433"></polygon>
</g>
<!-- 12&#45;&gt;22 -->
<g id="edge7" class="edge">
<title>12-&gt;22</title>
<path fill="none" stroke="#586e75" d="M46.5141,-79.6265C62.4999,-97.0332 90.197,-127.1923 107.7846,-146.3432"></path>
<polygon fill="#586e75" stroke="#586e75" points="111.5922,-150.4893 106.5529,-148.3285 109.9011,-148.6479 108.2101,-146.8066 108.2101,-146.8066 108.2101,-146.8066 109.9011,-148.6479 109.8673,-145.2847 111.5922,-150.4893 111.5922,-150.4893"></polygon>
</g>
<!-- 12&#45;&gt;23 -->
<g id="edge8" class="edge">
<title>12-&gt;23</title>
<path fill="none" stroke="#586e75" d="M50.9283,-72.207C65.4181,-77.52 86.3732,-85.2035 102.131,-90.9814"></path>
<polygon fill="#586e75" stroke="#586e75" points="106.8416,-92.7086 101.3726,-93.0997 104.4944,-91.8479 102.1472,-90.9872 102.1472,-90.9872 102.1472,-90.9872 104.4944,-91.8479 102.9218,-88.8748 106.8416,-92.7086 106.8416,-92.7086"></polygon>
</g>
<!-- 12&#45;&gt;24 -->
<g id="edge9" class="edge">
<title>12-&gt;24</title>
<path fill="none" stroke="#586e75" d="M51.3529,-59.8301C65.763,-54.7065 86.3487,-47.3871 101.9296,-41.8472"></path>
<polygon fill="#586e75" stroke="#586e75" points="107.0056,-40.0425 103.0483,-43.8376 104.65,-40.88 102.2945,-41.7176 102.2945,-41.7176 102.2945,-41.7176 104.65,-40.88 101.5407,-39.5976 107.0056,-40.0425 107.0056,-40.0425"></polygon>
</g>
<!-- 13 -->
<g id="node3" class="node">
<title>13</title>
<ellipse fill="none" stroke="#859900" cx="34" cy="-196" rx="18" ry="18"></ellipse>
</g>
<!-- 13&#45;&gt;21 -->
<g id="edge3" class="edge">
<title>13-&gt;21</title>
<path fill="none" stroke="#859900" d="M50.9283,-202.207C65.4181,-207.52 86.3732,-215.2035 102.131,-220.9814"></path>
<polygon fill="#859900" stroke="#859900" points="106.8416,-222.7086 101.3726,-223.0997 104.4944,-221.8479 102.1472,-220.9872 102.1472,-220.9872 102.1472,-220.9872 104.4944,-221.8479 102.9218,-218.8748 106.8416,-222.7086 106.8416,-222.7086"></polygon>
</g>
<!-- 13&#45;&gt;22 -->
<g id="edge10" class="edge">
<title>13-&gt;22</title>
<path fill="none" stroke="#586e75" d="M51.3529,-189.8301C65.763,-184.7065 86.3487,-177.3871 101.9296,-171.8472"></path>
<polygon fill="#586e75" stroke="#586e75" points="107.0056,-170.0425 103.0483,-173.8376 104.65,-170.88 102.2945,-171.7176 102.2945,-171.7176 102.2945,-171.7176 104.65,-170.88 101.5407,-169.5976 107.0056,-170.0425 107.0056,-170.0425"></polygon>
</g>
<!-- 13&#45;&gt;23 -->
<g id="edge11" class="edge">
<title>13-&gt;23</title>
<path fill="none" stroke="#586e75" d="M46.576,-182.6318C51.9532,-176.9039 58.2945,-170.1332 64,-164 78.9777,-147.8995 95.9713,-129.4749 108.04,-116.363"></path>
<polygon fill="#586e75" stroke="#586e75" points="111.6197,-112.4728 109.8897,-117.6757 109.9269,-114.3125 108.234,-116.1522 108.234,-116.1522 108.234,-116.1522 109.9269,-114.3125 106.5783,-114.6286 111.6197,-112.4728 111.6197,-112.4728"></polygon>
</g>
<!-- 13&#45;&gt;24 -->
<g id="edge12" class="edge">
<title>13-&gt;24</title>
<path fill="none" stroke="#586e75" d="M47.6109,-183.9447C53.2954,-178.3373 59.589,-171.2998 64,-164 87.8431,-124.5419 75.5691,-106.2776 98,-66 100.8265,-60.9247 104.4739,-55.8513 108.1376,-51.2887"></path>
<polygon fill="#586e75" stroke="#586e75" points="111.4838,-47.2567 110.022,-52.5412 109.8872,-49.1805 108.2906,-51.1043 108.2906,-51.1043 108.2906,-51.1043 109.8872,-49.1805 106.5592,-49.6674 111.4838,-47.2567 111.4838,-47.2567"></polygon>
</g>
<!-- 31 -->
<g id="node8" class="node">
<title>31</title>
<ellipse fill="none" stroke="#586e75" cx="210" cy="-131" rx="18" ry="18"></ellipse>
</g>
<!-- 21&#45;&gt;31 -->
<g id="edge13" class="edge">
<title>21-&gt;31</title>
<path fill="none" stroke="#586e75" d="M135.9579,-215.3735C151.1474,-198.0646 177.4023,-168.1462 194.2211,-148.9806"></path>
<polygon fill="#586e75" stroke="#586e75" points="197.8664,-144.8267 196.2596,-150.0689 196.2174,-146.7058 194.5684,-148.5848 194.5684,-148.5848 194.5684,-148.5848 196.2174,-146.7058 192.8772,-147.1007 197.8664,-144.8267 197.8664,-144.8267"></polygon>
</g>
<!-- 32 -->
<g id="node9" class="node">
<title>32</title>
<ellipse fill="none" stroke="#586e75" cx="210" cy="-196" rx="18" ry="18"></ellipse>
</g>
<!-- 21&#45;&gt;32 -->
<g id="edge14" class="edge">
<title>21-&gt;32</title>
<path fill="none" stroke="#586e75" d="M140.9908,-222.4803C154.5366,-217.2825 173.5981,-209.9682 188.2565,-204.3434"></path>
<polygon fill="#586e75" stroke="#586e75" points="193.0445,-202.5062 189.1824,-206.3982 190.7104,-203.4019 188.3763,-204.2975 188.3763,-204.2975 188.3763,-204.2975 190.7104,-203.4019 187.5702,-202.1969 193.0445,-202.5062 193.0445,-202.5062"></polygon>
</g>
<!-- 33 -->
<g id="node10" class="node">
<title>33</title>
<ellipse fill="none" stroke="#586e75" cx="210" cy="-66" rx="18" ry="18"></ellipse>
</g>
<!-- 21&#45;&gt;33 -->
<g id="edge15" class="edge">
<title>21-&gt;33</title>
<path fill="none" stroke="#586e75" d="M133.1007,-213.119C135.9903,-207.998 139.1691,-202.2808 142,-197 165.102,-153.9046 169.1795,-142.2451 192,-99 194.1472,-94.931 196.4769,-90.6003 198.7258,-86.4608"></path>
<polygon fill="#586e75" stroke="#586e75" points="201.1218,-82.0654 200.7041,-87.5325 199.9252,-84.2605 198.7286,-86.4555 198.7286,-86.4555 198.7286,-86.4555 199.9252,-84.2605 196.753,-85.3786 201.1218,-82.0654 201.1218,-82.0654"></polygon>
</g>
<!-- 22&#45;&gt;31 -->
<g id="edge16" class="edge">
<title>22-&gt;31</title>
<path fill="none" stroke="#586e75" d="M140.9908,-157.4803C154.5366,-152.2825 173.5981,-144.9682 188.2565,-139.3434"></path>
<polygon fill="#586e75" stroke="#586e75" points="193.0445,-137.5062 189.1824,-141.3982 190.7104,-138.4019 188.3763,-139.2975 188.3763,-139.2975 188.3763,-139.2975 190.7104,-138.4019 187.5702,-137.1969 193.0445,-137.5062 193.0445,-137.5062"></polygon>
</g>
<!-- 22&#45;&gt;32 -->
<g id="edge17" class="edge">
<title>22-&gt;32</title>
<path fill="none" stroke="#586e75" d="M140.9908,-170.3222C154.5366,-175.3624 173.5981,-182.4551 188.2565,-187.9094"></path>
<polygon fill="#586e75" stroke="#586e75" points="193.0445,-189.691 187.5737,-190.056 190.7014,-188.8191 188.3583,-187.9472 188.3583,-187.9472 188.3583,-187.9472 190.7014,-188.8191 189.143,-185.8385 193.0445,-189.691 193.0445,-189.691"></polygon>
</g>
<!-- 22&#45;&gt;33 -->
<g id="edge18" class="edge">
<title>22-&gt;33</title>
<path fill="none" stroke="#586e75" d="M135.9579,-150.3735C151.1474,-133.0646 177.4023,-103.1462 194.2211,-83.9806"></path>
<polygon fill="#586e75" stroke="#586e75" points="197.8664,-79.8267 196.2596,-85.0689 196.2174,-81.7058 194.5684,-83.5848 194.5684,-83.5848 194.5684,-83.5848 196.2174,-81.7058 192.8772,-82.1007 197.8664,-79.8267 197.8664,-79.8267"></polygon>
</g>
<!-- 23&#45;&gt;31 -->
<g id="edge19" class="edge">
<title>23-&gt;31</title>
<path fill="none" stroke="#586e75" d="M140.9908,-105.3222C154.5366,-110.3624 173.5981,-117.4551 188.2565,-122.9094"></path>
<polygon fill="#586e75" stroke="#586e75" points="193.0445,-124.691 187.5737,-125.056 190.7014,-123.8191 188.3583,-122.9472 188.3583,-122.9472 188.3583,-122.9472 190.7014,-123.8191 189.143,-120.8385 193.0445,-124.691 193.0445,-124.691"></polygon>
</g>
<!-- 23&#45;&gt;32 -->
<g id="edge20" class="edge">
<title>23-&gt;32</title>
<path fill="none" stroke="#586e75" d="M135.9579,-112.4874C151.1474,-129.6197 177.4023,-159.2329 194.2211,-178.2029"></path>
<polygon fill="#586e75" stroke="#586e75" points="197.8664,-182.3144 192.8657,-180.0658 196.2079,-180.4437 194.5493,-178.5731 194.5493,-178.5731 194.5493,-178.5731 196.2079,-180.4437 196.2329,-177.0804 197.8664,-182.3144 197.8664,-182.3144"></polygon>
</g>
<!-- 23&#45;&gt;33 -->
<g id="edge21" class="edge">
<title>23-&gt;33</title>
<path fill="none" stroke="#586e75" d="M140.9908,-92.4803C154.5366,-87.2825 173.5981,-79.9682 188.2565,-74.3434"></path>
<polygon fill="#586e75" stroke="#586e75" points="193.0445,-72.5062 189.1824,-76.3982 190.7104,-73.4019 188.3763,-74.2975 188.3763,-74.2975 188.3763,-74.2975 190.7104,-73.4019 187.5702,-72.1969 193.0445,-72.5062 193.0445,-72.5062"></polygon>
</g>
<!-- 24&#45;&gt;31 -->
<g id="edge22" class="edge">
<title>24-&gt;31</title>
<path fill="none" stroke="#586e75" d="M135.9579,-47.4874C151.1474,-64.6197 177.4023,-94.2329 194.2211,-113.2029"></path>
<polygon fill="#586e75" stroke="#586e75" points="197.8664,-117.3144 192.8657,-115.0658 196.2079,-115.4437 194.5493,-113.5731 194.5493,-113.5731 194.5493,-113.5731 196.2079,-115.4437 196.2329,-112.0804 197.8664,-117.3144 197.8664,-117.3144"></polygon>
</g>
<!-- 24&#45;&gt;32 -->
<g id="edge23" class="edge">
<title>24-&gt;32</title>
<path fill="none" stroke="#586e75" d="M133.1007,-49.881C135.9903,-55.002 139.1691,-60.7192 142,-66 165.102,-109.0954 168.898,-120.9046 192,-164 194.0347,-167.7956 196.2491,-171.8166 198.4067,-175.6796"></path>
<polygon fill="#586e75" stroke="#586e75" points="200.8993,-180.119 196.4894,-176.8608 199.6753,-177.9391 198.4514,-175.7592 198.4514,-175.7592 198.4514,-175.7592 199.6753,-177.9391 200.4133,-174.6577 200.8993,-180.119 200.8993,-180.119"></polygon>
</g>
<!-- 24&#45;&gt;33 -->
<g id="edge24" class="edge">
<title>24-&gt;33</title>
<path fill="none" stroke="#586e75" d="M140.9908,-40.3222C154.5366,-45.3624 173.5981,-52.4551 188.2565,-57.9094"></path>
<polygon fill="#586e75" stroke="#586e75" points="193.0445,-59.691 187.5737,-60.056 190.7014,-58.8191 188.3583,-57.9472 188.3583,-57.9472 188.3583,-57.9472 190.7014,-58.8191 189.143,-55.8385 193.0445,-59.691 193.0445,-59.691"></polygon>
</g>
<!-- 41 -->
<g id="node11" class="node">
<title>41</title>
<ellipse fill="none" stroke="#586e75" cx="296" cy="-34" rx="18" ry="18"></ellipse>
</g>
<!-- 31&#45;&gt;41 -->
<g id="edge25" class="edge">
<title>31-&gt;41</title>
<path fill="none" stroke="#586e75" d="M221.9579,-117.5126C237.1474,-100.3803 263.4023,-70.7671 280.2211,-51.7971"></path>
<polygon fill="#586e75" stroke="#586e75" points="283.8664,-47.6856 282.2329,-52.9196 282.2079,-49.5563 280.5493,-51.4269 280.5493,-51.4269 280.5493,-51.4269 282.2079,-49.5563 278.8657,-49.9342 283.8664,-47.6856 283.8664,-47.6856"></polygon>
</g>
<!-- 42 -->
<g id="node12" class="node">
<title>42</title>
<ellipse fill="none" stroke="#586e75" cx="296" cy="-99" rx="18" ry="18"></ellipse>
</g>
<!-- 31&#45;&gt;42 -->
<g id="edge26" class="edge">
<title>31-&gt;42</title>
<path fill="none" stroke="#586e75" d="M226.9908,-124.6778C240.5366,-119.6376 259.5981,-112.5449 274.2565,-107.0906"></path>
<polygon fill="#586e75" stroke="#586e75" points="279.0445,-105.309 275.143,-109.1615 276.7014,-106.1809 274.3583,-107.0528 274.3583,-107.0528 274.3583,-107.0528 276.7014,-106.1809 273.5737,-104.944 279.0445,-105.309 279.0445,-105.309"></polygon>
</g>
<!-- 43 -->
<g id="node13" class="node">
<title>43</title>
<ellipse fill="none" stroke="#586e75" cx="296" cy="-164" rx="18" ry="18"></ellipse>
</g>
<!-- 31&#45;&gt;43 -->
<g id="edge27" class="edge">
<title>31-&gt;43</title>
<path fill="none" stroke="#586e75" d="M226.9908,-137.5197C240.5366,-142.7175 259.5981,-150.0318 274.2565,-155.6566"></path>
<polygon fill="#586e75" stroke="#586e75" points="279.0445,-157.4938 273.5702,-157.8031 276.7104,-156.5981 274.3763,-155.7025 274.3763,-155.7025 274.3763,-155.7025 276.7104,-156.5981 275.1824,-153.6018 279.0445,-157.4938 279.0445,-157.4938"></polygon>
</g>
<!-- 44 -->
<g id="node14" class="node">
<title>44</title>
<ellipse fill="none" stroke="#586e75" cx="296" cy="-229" rx="18" ry="18"></ellipse>
</g>
<!-- 31&#45;&gt;44 -->
<g id="edge28" class="edge">
<title>31-&gt;44</title>
<path fill="none" stroke="#586e75" d="M221.9579,-144.6265C237.1474,-161.9354 263.4023,-191.8538 280.2211,-211.0194"></path>
<polygon fill="#586e75" stroke="#586e75" points="283.8664,-215.1733 278.8772,-212.8993 282.2174,-213.2942 280.5684,-211.4152 280.5684,-211.4152 280.5684,-211.4152 282.2174,-213.2942 282.2596,-209.9311 283.8664,-215.1733 283.8664,-215.1733"></polygon>
</g>
<!-- 32&#45;&gt;41 -->
<g id="edge29" class="edge">
<title>32-&gt;41</title>
<path fill="none" stroke="#586e75" d="M219.1007,-180.119C221.9903,-174.998 225.1691,-169.2808 228,-164 251.102,-120.9046 254.898,-109.0954 278,-66 280.0347,-62.2044 282.2491,-58.1834 284.4067,-54.3204"></path>
<polygon fill="#586e75" stroke="#586e75" points="286.8993,-49.881 286.4133,-55.3423 285.6753,-52.0609 284.4514,-54.2408 284.4514,-54.2408 284.4514,-54.2408 285.6753,-52.0609 282.4894,-53.1392 286.8993,-49.881 286.8993,-49.881"></polygon>
</g>
<!-- 32&#45;&gt;42 -->
<g id="edge30" class="edge">
<title>32-&gt;42</title>
<path fill="none" stroke="#586e75" d="M221.9579,-182.5126C237.1474,-165.3803 263.4023,-135.7671 280.2211,-116.7971"></path>
<polygon fill="#586e75" stroke="#586e75" points="283.8664,-112.6856 282.2329,-117.9196 282.2079,-114.5563 280.5493,-116.4269 280.5493,-116.4269 280.5493,-116.4269 282.2079,-114.5563 278.8657,-114.9342 283.8664,-112.6856 283.8664,-112.6856"></polygon>
</g>
<!-- 32&#45;&gt;43 -->
<g id="edge31" class="edge">
<title>32-&gt;43</title>
<path fill="none" stroke="#586e75" d="M226.9908,-189.6778C240.5366,-184.6376 259.5981,-177.5449 274.2565,-172.0906"></path>
<polygon fill="#586e75" stroke="#586e75" points="279.0445,-170.309 275.143,-174.1615 276.7014,-171.1809 274.3583,-172.0528 274.3583,-172.0528 274.3583,-172.0528 276.7014,-171.1809 273.5737,-169.944 279.0445,-170.309 279.0445,-170.309"></polygon>
</g>
<!-- 32&#45;&gt;44 -->
<g id="edge32" class="edge">
<title>32-&gt;44</title>
<path fill="none" stroke="#586e75" d="M226.9908,-202.5197C240.5366,-207.7175 259.5981,-215.0318 274.2565,-220.6566"></path>
<polygon fill="#586e75" stroke="#586e75" points="279.0445,-222.4938 273.5702,-222.8031 276.7104,-221.5981 274.3763,-220.7025 274.3763,-220.7025 274.3763,-220.7025 276.7104,-221.5981 275.1824,-218.6018 279.0445,-222.4938 279.0445,-222.4938"></polygon>
</g>
<!-- 33&#45;&gt;41 -->
<g id="edge33" class="edge">
<title>33-&gt;41</title>
<path fill="none" stroke="#586e75" d="M226.9908,-59.6778C240.5366,-54.6376 259.5981,-47.5449 274.2565,-42.0906"></path>
<polygon fill="#586e75" stroke="#586e75" points="279.0445,-40.309 275.143,-44.1615 276.7014,-41.1809 274.3583,-42.0528 274.3583,-42.0528 274.3583,-42.0528 276.7014,-41.1809 273.5737,-39.944 279.0445,-40.309 279.0445,-40.309"></polygon>
</g>
<!-- 33&#45;&gt;42 -->
<g id="edge34" class="edge">
<title>33-&gt;42</title>
<path fill="none" stroke="#586e75" d="M226.9908,-72.5197C240.5366,-77.7175 259.5981,-85.0318 274.2565,-90.6566"></path>
<polygon fill="#586e75" stroke="#586e75" points="279.0445,-92.4938 273.5702,-92.8031 276.7104,-91.5981 274.3763,-90.7025 274.3763,-90.7025 274.3763,-90.7025 276.7104,-91.5981 275.1824,-88.6018 279.0445,-92.4938 279.0445,-92.4938"></polygon>
</g>
<!-- 33&#45;&gt;43 -->
<g id="edge35" class="edge">
<title>33-&gt;43</title>
<path fill="none" stroke="#586e75" d="M221.9579,-79.6265C237.1474,-96.9354 263.4023,-126.8538 280.2211,-146.0194"></path>
<polygon fill="#586e75" stroke="#586e75" points="283.8664,-150.1733 278.8772,-147.8993 282.2174,-148.2942 280.5684,-146.4152 280.5684,-146.4152 280.5684,-146.4152 282.2174,-148.2942 282.2596,-144.9311 283.8664,-150.1733 283.8664,-150.1733"></polygon>
</g>
<!-- 33&#45;&gt;44 -->
<g id="edge36" class="edge">
<title>33-&gt;44</title>
<path fill="none" stroke="#586e75" d="M218.8782,-82.0654C221.8139,-87.4333 225.0761,-93.4592 228,-99 250.8205,-142.2451 254.898,-153.9046 278,-197 280.0347,-200.7956 282.2491,-204.8166 284.4067,-208.6796"></path>
<polygon fill="#586e75" stroke="#586e75" points="286.8993,-213.119 282.4894,-209.8608 285.6753,-210.9391 284.4514,-208.7592 284.4514,-208.7592 284.4514,-208.7592 285.6753,-210.9391 286.4133,-207.6577 286.8993,-213.119 286.8993,-213.119"></polygon>
</g>
<!-- 51 -->
<g id="node15" class="node">
<title>51</title>
<ellipse fill="none" stroke="#586e75" cx="382" cy="-131" rx="18" ry="18"></ellipse>
</g>
<!-- 41&#45;&gt;51 -->
<g id="edge37" class="edge">
<title>41-&gt;51</title>
<path fill="none" stroke="#586e75" d="M307.9579,-47.4874C323.1474,-64.6197 349.4023,-94.2329 366.2211,-113.2029"></path>
<polygon fill="#586e75" stroke="#586e75" points="369.8664,-117.3144 364.8657,-115.0658 368.2079,-115.4437 366.5493,-113.5731 366.5493,-113.5731 366.5493,-113.5731 368.2079,-115.4437 368.2329,-112.0804 369.8664,-117.3144 369.8664,-117.3144"></polygon>
</g>
<!-- 52 -->
<g id="node16" class="node">
<title>52</title>
<ellipse fill="none" stroke="#586e75" cx="382" cy="-196" rx="18" ry="18"></ellipse>
</g>
<!-- 41&#45;&gt;52 -->
<g id="edge38" class="edge">
<title>41-&gt;52</title>
<path fill="none" stroke="#586e75" d="M305.1007,-49.881C307.9903,-55.002 311.1691,-60.7192 314,-66 337.102,-109.0954 340.898,-120.9046 364,-164 366.0347,-167.7956 368.2491,-171.8166 370.4067,-175.6796"></path>
<polygon fill="#586e75" stroke="#586e75" points="372.8993,-180.119 368.4894,-176.8608 371.6753,-177.9391 370.4514,-175.7592 370.4514,-175.7592 370.4514,-175.7592 371.6753,-177.9391 372.4133,-174.6577 372.8993,-180.119 372.8993,-180.119"></polygon>
</g>
<!-- 53 -->
<g id="node17" class="node">
<title>53</title>
<ellipse fill="none" stroke="#586e75" cx="382" cy="-66" rx="18" ry="18"></ellipse>
</g>
<!-- 41&#45;&gt;53 -->
<g id="edge39" class="edge">
<title>41-&gt;53</title>
<path fill="none" stroke="#586e75" d="M312.9908,-40.3222C326.5366,-45.3624 345.5981,-52.4551 360.2565,-57.9094"></path>
<polygon fill="#586e75" stroke="#586e75" points="365.0445,-59.691 359.5737,-60.056 362.7014,-58.8191 360.3583,-57.9472 360.3583,-57.9472 360.3583,-57.9472 362.7014,-58.8191 361.143,-55.8385 365.0445,-59.691 365.0445,-59.691"></polygon>
</g>
<!-- 42&#45;&gt;51 -->
<g id="edge40" class="edge">
<title>42-&gt;51</title>
<path fill="none" stroke="#586e75" d="M312.9908,-105.3222C326.5366,-110.3624 345.5981,-117.4551 360.2565,-122.9094"></path>
<polygon fill="#586e75" stroke="#586e75" points="365.0445,-124.691 359.5737,-125.056 362.7014,-123.8191 360.3583,-122.9472 360.3583,-122.9472 360.3583,-122.9472 362.7014,-123.8191 361.143,-120.8385 365.0445,-124.691 365.0445,-124.691"></polygon>
</g>
<!-- 42&#45;&gt;52 -->
<g id="edge41" class="edge">
<title>42-&gt;52</title>
<path fill="none" stroke="#586e75" d="M307.9579,-112.4874C323.1474,-129.6197 349.4023,-159.2329 366.2211,-178.2029"></path>
<polygon fill="#586e75" stroke="#586e75" points="369.8664,-182.3144 364.8657,-180.0658 368.2079,-180.4437 366.5493,-178.5731 366.5493,-178.5731 366.5493,-178.5731 368.2079,-180.4437 368.2329,-177.0804 369.8664,-182.3144 369.8664,-182.3144"></polygon>
</g>
<!-- 42&#45;&gt;53 -->
<g id="edge42" class="edge">
<title>42-&gt;53</title>
<path fill="none" stroke="#586e75" d="M312.9908,-92.4803C326.5366,-87.2825 345.5981,-79.9682 360.2565,-74.3434"></path>
<polygon fill="#586e75" stroke="#586e75" points="365.0445,-72.5062 361.1824,-76.3982 362.7104,-73.4019 360.3763,-74.2975 360.3763,-74.2975 360.3763,-74.2975 362.7104,-73.4019 359.5702,-72.1969 365.0445,-72.5062 365.0445,-72.5062"></polygon>
</g>
<!-- 43&#45;&gt;51 -->
<g id="edge43" class="edge">
<title>43-&gt;51</title>
<path fill="none" stroke="#586e75" d="M312.9908,-157.4803C326.5366,-152.2825 345.5981,-144.9682 360.2565,-139.3434"></path>
<polygon fill="#586e75" stroke="#586e75" points="365.0445,-137.5062 361.1824,-141.3982 362.7104,-138.4019 360.3763,-139.2975 360.3763,-139.2975 360.3763,-139.2975 362.7104,-138.4019 359.5702,-137.1969 365.0445,-137.5062 365.0445,-137.5062"></polygon>
</g>
<!-- 43&#45;&gt;52 -->
<g id="edge44" class="edge">
<title>43-&gt;52</title>
<path fill="none" stroke="#586e75" d="M312.9908,-170.3222C326.5366,-175.3624 345.5981,-182.4551 360.2565,-187.9094"></path>
<polygon fill="#586e75" stroke="#586e75" points="365.0445,-189.691 359.5737,-190.056 362.7014,-188.8191 360.3583,-187.9472 360.3583,-187.9472 360.3583,-187.9472 362.7014,-188.8191 361.143,-185.8385 365.0445,-189.691 365.0445,-189.691"></polygon>
</g>
<!-- 43&#45;&gt;53 -->
<g id="edge45" class="edge">
<title>43-&gt;53</title>
<path fill="none" stroke="#586e75" d="M307.9579,-150.3735C323.1474,-133.0646 349.4023,-103.1462 366.2211,-83.9806"></path>
<polygon fill="#586e75" stroke="#586e75" points="369.8664,-79.8267 368.2596,-85.0689 368.2174,-81.7058 366.5684,-83.5848 366.5684,-83.5848 366.5684,-83.5848 368.2174,-81.7058 364.8772,-82.1007 369.8664,-79.8267 369.8664,-79.8267"></polygon>
</g>
<!-- 44&#45;&gt;51 -->
<g id="edge46" class="edge">
<title>44-&gt;51</title>
<path fill="none" stroke="#586e75" d="M307.9579,-215.3735C323.1474,-198.0646 349.4023,-168.1462 366.2211,-148.9806"></path>
<polygon fill="#586e75" stroke="#586e75" points="369.8664,-144.8267 368.2596,-150.0689 368.2174,-146.7058 366.5684,-148.5848 366.5684,-148.5848 366.5684,-148.5848 368.2174,-146.7058 364.8772,-147.1007 369.8664,-144.8267 369.8664,-144.8267"></polygon>
</g>
<!-- 44&#45;&gt;52 -->
<g id="edge47" class="edge">
<title>44-&gt;52</title>
<path fill="none" stroke="#586e75" d="M312.9908,-222.4803C326.5366,-217.2825 345.5981,-209.9682 360.2565,-204.3434"></path>
<polygon fill="#586e75" stroke="#586e75" points="365.0445,-202.5062 361.1824,-206.3982 362.7104,-203.4019 360.3763,-204.2975 360.3763,-204.2975 360.3763,-204.2975 362.7104,-203.4019 359.5702,-202.1969 365.0445,-202.5062 365.0445,-202.5062"></polygon>
</g>
<!-- 44&#45;&gt;53 -->
<g id="edge48" class="edge">
<title>44-&gt;53</title>
<path fill="none" stroke="#586e75" d="M305.1007,-213.119C307.9903,-207.998 311.1691,-202.2808 314,-197 337.102,-153.9046 341.1795,-142.2451 364,-99 366.1472,-94.931 368.4769,-90.6003 370.7258,-86.4608"></path>
<polygon fill="#586e75" stroke="#586e75" points="373.1218,-82.0654 372.7041,-87.5325 371.9252,-84.2605 370.7286,-86.4555 370.7286,-86.4555 370.7286,-86.4555 371.9252,-84.2605 368.753,-85.3786 373.1218,-82.0654 373.1218,-82.0654"></polygon>
</g>
<!-- 61 -->
<g id="node18" class="node">
<title>61</title>
<ellipse fill="none" stroke="#586e75" cx="468" cy="-34" rx="18" ry="18"></ellipse>
</g>
<!-- 51&#45;&gt;61 -->
<g id="edge49" class="edge">
<title>51-&gt;61</title>
<path fill="none" stroke="#586e75" d="M393.9579,-117.5126C409.1474,-100.3803 435.4023,-70.7671 452.2211,-51.7971"></path>
<polygon fill="#586e75" stroke="#586e75" points="455.8664,-47.6856 454.2329,-52.9196 454.2079,-49.5563 452.5493,-51.4269 452.5493,-51.4269 452.5493,-51.4269 454.2079,-49.5563 450.8657,-49.9342 455.8664,-47.6856 455.8664,-47.6856"></polygon>
</g>
<!-- 62 -->
<g id="node19" class="node">
<title>62</title>
<ellipse fill="none" stroke="#586e75" cx="468" cy="-99" rx="18" ry="18"></ellipse>
</g>
<!-- 51&#45;&gt;62 -->
<g id="edge50" class="edge">
<title>51-&gt;62</title>
<path fill="none" stroke="#586e75" d="M398.9908,-124.6778C412.5366,-119.6376 431.5981,-112.5449 446.2565,-107.0906"></path>
<polygon fill="#586e75" stroke="#586e75" points="451.0445,-105.309 447.143,-109.1615 448.7014,-106.1809 446.3583,-107.0528 446.3583,-107.0528 446.3583,-107.0528 448.7014,-106.1809 445.5737,-104.944 451.0445,-105.309 451.0445,-105.309"></polygon>
</g>
<!-- 63 -->
<g id="node20" class="node">
<title>63</title>
<ellipse fill="none" stroke="#586e75" cx="468" cy="-164" rx="18" ry="18"></ellipse>
</g>
<!-- 51&#45;&gt;63 -->
<g id="edge51" class="edge">
<title>51-&gt;63</title>
<path fill="none" stroke="#586e75" d="M398.9908,-137.5197C412.5366,-142.7175 431.5981,-150.0318 446.2565,-155.6566"></path>
<polygon fill="#586e75" stroke="#586e75" points="451.0445,-157.4938 445.5702,-157.8031 448.7104,-156.5981 446.3763,-155.7025 446.3763,-155.7025 446.3763,-155.7025 448.7104,-156.5981 447.1824,-153.6018 451.0445,-157.4938 451.0445,-157.4938"></polygon>
</g>
<!-- 64 -->
<g id="node21" class="node">
<title>64</title>
<ellipse fill="none" stroke="#586e75" cx="468" cy="-229" rx="18" ry="18"></ellipse>
</g>
<!-- 51&#45;&gt;64 -->
<g id="edge52" class="edge">
<title>51-&gt;64</title>
<path fill="none" stroke="#586e75" d="M393.9579,-144.6265C409.1474,-161.9354 435.4023,-191.8538 452.2211,-211.0194"></path>
<polygon fill="#586e75" stroke="#586e75" points="455.8664,-215.1733 450.8772,-212.8993 454.2174,-213.2942 452.5684,-211.4152 452.5684,-211.4152 452.5684,-211.4152 454.2174,-213.2942 454.2596,-209.9311 455.8664,-215.1733 455.8664,-215.1733"></polygon>
</g>
<!-- 52&#45;&gt;61 -->
<g id="edge53" class="edge">
<title>52-&gt;61</title>
<path fill="none" stroke="#586e75" d="M391.1007,-180.119C393.9903,-174.998 397.1691,-169.2808 400,-164 423.102,-120.9046 426.898,-109.0954 450,-66 452.0347,-62.2044 454.2491,-58.1834 456.4067,-54.3204"></path>
<polygon fill="#586e75" stroke="#586e75" points="458.8993,-49.881 458.4133,-55.3423 457.6753,-52.0609 456.4514,-54.2408 456.4514,-54.2408 456.4514,-54.2408 457.6753,-52.0609 454.4894,-53.1392 458.8993,-49.881 458.8993,-49.881"></polygon>
</g>
<!-- 52&#45;&gt;62 -->
<g id="edge54" class="edge">
<title>52-&gt;62</title>
<path fill="none" stroke="#586e75" d="M393.9579,-182.5126C409.1474,-165.3803 435.4023,-135.7671 452.2211,-116.7971"></path>
<polygon fill="#586e75" stroke="#586e75" points="455.8664,-112.6856 454.2329,-117.9196 454.2079,-114.5563 452.5493,-116.4269 452.5493,-116.4269 452.5493,-116.4269 454.2079,-114.5563 450.8657,-114.9342 455.8664,-112.6856 455.8664,-112.6856"></polygon>
</g>
<!-- 52&#45;&gt;63 -->
<g id="edge55" class="edge">
<title>52-&gt;63</title>
<path fill="none" stroke="#586e75" d="M398.9908,-189.6778C412.5366,-184.6376 431.5981,-177.5449 446.2565,-172.0906"></path>
<polygon fill="#586e75" stroke="#586e75" points="451.0445,-170.309 447.143,-174.1615 448.7014,-171.1809 446.3583,-172.0528 446.3583,-172.0528 446.3583,-172.0528 448.7014,-171.1809 445.5737,-169.944 451.0445,-170.309 451.0445,-170.309"></polygon>
</g>
<!-- 52&#45;&gt;64 -->
<g id="edge56" class="edge">
<title>52-&gt;64</title>
<path fill="none" stroke="#586e75" d="M398.9908,-202.5197C412.5366,-207.7175 431.5981,-215.0318 446.2565,-220.6566"></path>
<polygon fill="#586e75" stroke="#586e75" points="451.0445,-222.4938 445.5702,-222.8031 448.7104,-221.5981 446.3763,-220.7025 446.3763,-220.7025 446.3763,-220.7025 448.7104,-221.5981 447.1824,-218.6018 451.0445,-222.4938 451.0445,-222.4938"></polygon>
</g>
<!-- 53&#45;&gt;61 -->
<g id="edge57" class="edge">
<title>53-&gt;61</title>
<path fill="none" stroke="#586e75" d="M398.9908,-59.6778C412.5366,-54.6376 431.5981,-47.5449 446.2565,-42.0906"></path>
<polygon fill="#586e75" stroke="#586e75" points="451.0445,-40.309 447.143,-44.1615 448.7014,-41.1809 446.3583,-42.0528 446.3583,-42.0528 446.3583,-42.0528 448.7014,-41.1809 445.5737,-39.944 451.0445,-40.309 451.0445,-40.309"></polygon>
</g>
<!-- 53&#45;&gt;62 -->
<g id="edge58" class="edge">
<title>53-&gt;62</title>
<path fill="none" stroke="#586e75" d="M398.9908,-72.5197C412.5366,-77.7175 431.5981,-85.0318 446.2565,-90.6566"></path>
<polygon fill="#586e75" stroke="#586e75" points="451.0445,-92.4938 445.5702,-92.8031 448.7104,-91.5981 446.3763,-90.7025 446.3763,-90.7025 446.3763,-90.7025 448.7104,-91.5981 447.1824,-88.6018 451.0445,-92.4938 451.0445,-92.4938"></polygon>
</g>
<!-- 53&#45;&gt;63 -->
<g id="edge59" class="edge">
<title>53-&gt;63</title>
<path fill="none" stroke="#586e75" d="M393.9579,-79.6265C409.1474,-96.9354 435.4023,-126.8538 452.2211,-146.0194"></path>
<polygon fill="#586e75" stroke="#586e75" points="455.8664,-150.1733 450.8772,-147.8993 454.2174,-148.2942 452.5684,-146.4152 452.5684,-146.4152 452.5684,-146.4152 454.2174,-148.2942 454.2596,-144.9311 455.8664,-150.1733 455.8664,-150.1733"></polygon>
</g>
<!-- 53&#45;&gt;64 -->
<g id="edge60" class="edge">
<title>53-&gt;64</title>
<path fill="none" stroke="#586e75" d="M390.8782,-82.0654C393.8139,-87.4333 397.0761,-93.4592 400,-99 422.8205,-142.2451 426.898,-153.9046 450,-197 452.0347,-200.7956 454.2491,-204.8166 456.4067,-208.6796"></path>
<polygon fill="#586e75" stroke="#586e75" points="458.8993,-213.119 454.4894,-209.8608 457.6753,-210.9391 456.4514,-208.7592 456.4514,-208.7592 456.4514,-208.7592 457.6753,-210.9391 458.4133,-207.6577 458.8993,-213.119 458.8993,-213.119"></polygon>
</g>
<!-- 71 -->
<g id="node22" class="node">
<title>71</title>
<ellipse fill="none" stroke="#586e75" cx="557" cy="-66" rx="18" ry="18"></ellipse>
</g>
<!-- 61&#45;&gt;71 -->
<g id="edge61" class="edge">
<title>61-&gt;71</title>
<path fill="none" stroke="#586e75" d="M485.1601,-40.1699C499.3194,-45.2609 519.508,-52.5197 534.8798,-58.0467"></path>
<polygon fill="#586e75" stroke="#586e75" points="539.8926,-59.849 534.4262,-60.2745 537.54,-59.0031 535.1875,-58.1572 535.1875,-58.1572 535.1875,-58.1572 537.54,-59.0031 535.9488,-56.0399 539.8926,-59.849 539.8926,-59.849"></polygon>
</g>
<!-- 72 -->
<g id="node23" class="node">
<title>72</title>
<ellipse fill="none" stroke="#586e75" cx="557" cy="-196" rx="18" ry="18"></ellipse>
</g>
<!-- 61&#45;&gt;72 -->
<g id="edge62" class="edge">
<title>61-&gt;72</title>
<path fill="none" stroke="#586e75" d="M480.5162,-47.2567C485.2161,-52.7453 490.3083,-59.371 494,-66 516.4309,-106.2776 504.4911,-124.3419 528,-164 531.2856,-169.5425 535.6332,-174.97 539.9597,-179.735"></path>
<polygon fill="#586e75" stroke="#586e75" points="543.5652,-183.5698 538.501,-181.4682 541.8527,-181.7484 540.1402,-179.927 540.1402,-179.927 540.1402,-179.927 541.8527,-181.7484 541.7795,-178.3857 543.5652,-183.5698 543.5652,-183.5698"></polygon>
</g>
<!-- 73 -->
<g id="node24" class="node">
<title>73</title>
<ellipse fill="none" stroke="#586e75" cx="557" cy="-131" rx="18" ry="18"></ellipse>
</g>
<!-- 61&#45;&gt;73 -->
<g id="edge63" class="edge">
<title>61-&gt;73</title>
<path fill="none" stroke="#586e75" d="M480.3751,-47.4874C496.1832,-64.7165 523.5726,-94.5679 540.9648,-113.5234"></path>
<polygon fill="#586e75" stroke="#586e75" points="544.73,-117.6271 539.6918,-115.4641 543.0398,-115.785 541.3497,-113.9429 541.3497,-113.9429 541.3497,-113.9429 543.0398,-115.785 543.0076,-112.4217 544.73,-117.6271 544.73,-117.6271"></polygon>
</g>
<!-- 62&#45;&gt;71 -->
<g id="edge64" class="edge">
<title>62-&gt;71</title>
<path fill="none" stroke="#586e75" d="M485.1601,-92.6373C499.3194,-87.3872 519.508,-79.9015 534.8798,-74.2019"></path>
<polygon fill="#586e75" stroke="#586e75" points="539.8926,-72.3432 535.9867,-76.1912 537.5485,-73.2124 535.2045,-74.0815 535.2045,-74.0815 535.2045,-74.0815 537.5485,-73.2124 534.4222,-71.9719 539.8926,-72.3432 539.8926,-72.3432"></polygon>
</g>
<!-- 62&#45;&gt;72 -->
<g id="edge65" class="edge">
<title>62-&gt;72</title>
<path fill="none" stroke="#586e75" d="M480.3751,-112.4874C496.1832,-129.7165 523.5726,-159.5679 540.9648,-178.5234"></path>
<polygon fill="#586e75" stroke="#586e75" points="544.73,-182.6271 539.6918,-180.4641 543.0398,-180.785 541.3497,-178.9429 541.3497,-178.9429 541.3497,-178.9429 543.0398,-180.785 543.0076,-177.4217 544.73,-182.6271 544.73,-182.6271"></polygon>
</g>
<!-- 62&#45;&gt;73 -->
<g id="edge66" class="edge">
<title>62-&gt;73</title>
<path fill="none" stroke="#586e75" d="M485.1601,-105.1699C499.3194,-110.2609 519.508,-117.5197 534.8798,-123.0467"></path>
<polygon fill="#586e75" stroke="#586e75" points="539.8926,-124.849 534.4262,-125.2745 537.54,-124.0031 535.1875,-123.1572 535.1875,-123.1572 535.1875,-123.1572 537.54,-124.0031 535.9488,-121.0399 539.8926,-124.849 539.8926,-124.849"></polygon>
</g>
<!-- 63&#45;&gt;71 -->
<g id="edge67" class="edge">
<title>63-&gt;71</title>
<path fill="none" stroke="#586e75" d="M480.3751,-150.3735C496.1832,-132.9668 523.5726,-102.8077 540.9648,-83.6568"></path>
<polygon fill="#586e75" stroke="#586e75" points="544.73,-79.5107 543.0342,-84.7249 543.0493,-81.3615 541.3685,-83.2122 541.3685,-83.2122 541.3685,-83.2122 543.0493,-81.3615 539.7029,-81.6995 544.73,-79.5107 544.73,-79.5107"></polygon>
</g>
<!-- 63&#45;&gt;72 -->
<g id="edge68" class="edge">
<title>63-&gt;72</title>
<path fill="none" stroke="#586e75" d="M485.1601,-170.1699C499.3194,-175.2609 519.508,-182.5197 534.8798,-188.0467"></path>
<polygon fill="#586e75" stroke="#586e75" points="539.8926,-189.849 534.4262,-190.2745 537.54,-189.0031 535.1875,-188.1572 535.1875,-188.1572 535.1875,-188.1572 537.54,-189.0031 535.9488,-186.0399 539.8926,-189.849 539.8926,-189.849"></polygon>
</g>
<!-- 63&#45;&gt;73 -->
<g id="edge69" class="edge">
<title>63-&gt;73</title>
<path fill="none" stroke="#586e75" d="M485.1601,-157.6373C499.3194,-152.3872 519.508,-144.9015 534.8798,-139.2019"></path>
<polygon fill="#586e75" stroke="#586e75" points="539.8926,-137.3432 535.9867,-141.1912 537.5485,-138.2124 535.2045,-139.0815 535.2045,-139.0815 535.2045,-139.0815 537.5485,-138.2124 534.4222,-136.9719 539.8926,-137.3432 539.8926,-137.3432"></polygon>
</g>
<!-- 64&#45;&gt;71 -->
<g id="edge70" class="edge">
<title>64-&gt;71</title>
<path fill="none" stroke="#586e75" d="M480.5162,-215.7433C485.2161,-210.2547 490.3083,-203.629 494,-197 516.4309,-156.7224 504.7949,-138.8366 528,-99 531.4263,-93.118 535.9884,-87.3264 540.4778,-82.277"></path>
<polygon fill="#586e75" stroke="#586e75" points="543.8767,-78.5712 542.1552,-83.7769 542.1869,-80.4136 540.497,-82.256 540.497,-82.256 540.497,-82.256 542.1869,-80.4136 538.8389,-80.7351 543.8767,-78.5712 543.8767,-78.5712"></polygon>
</g>
<!-- 64&#45;&gt;72 -->
<g id="edge71" class="edge">
<title>64-&gt;72</title>
<path fill="none" stroke="#586e75" d="M485.1601,-222.6373C499.3194,-217.3872 519.508,-209.9015 534.8798,-204.2019"></path>
<polygon fill="#586e75" stroke="#586e75" points="539.8926,-202.3432 535.9867,-206.1912 537.5485,-203.2124 535.2045,-204.0815 535.2045,-204.0815 535.2045,-204.0815 537.5485,-203.2124 534.4222,-201.9719 539.8926,-202.3432 539.8926,-202.3432"></polygon>
</g>
<!-- 64&#45;&gt;73 -->
<g id="edge72" class="edge">
<title>64-&gt;73</title>
<path fill="none" stroke="#586e75" d="M480.3751,-215.3735C496.1832,-197.9668 523.5726,-167.8077 540.9648,-148.6568"></path>
<polygon fill="#586e75" stroke="#586e75" points="544.73,-144.5107 543.0342,-149.7249 543.0493,-146.3615 541.3685,-148.2122 541.3685,-148.2122 541.3685,-148.2122 543.0493,-146.3615 539.7029,-146.6995 544.73,-144.5107 544.73,-144.5107"></polygon>
</g>
</g>
</svg>
</p><div></div>
<p>只要存在隐藏层，模型就拥有了非线性预测能力</p>
<div class="footer"><hr class="hr_bottom"><div class="multi_column"><h6 class="bottom_left">图神经网络导论</h6><h6 class="bottom_center">神经网络</h6><h6 class="bottom_right">tengzhang@hust.edu.cn</h6></div></div>
</section><section vertical="true" data-notes="" lineno="72" class="slide " data-line="72" data-h="1" data-v="2">
<div class="header"><img class="hust" src=""><div class="title"><hr class="hr_top"><h5>形式化</h5></div></div>
<p><span class="mathjax-exps">$L$</span>：神经网络的层数</p>
<p><span class="mathjax-exps">$n_l$</span>：第<span class="mathjax-exps">$l$</span>层神经元的个数</p>
<p><span class="mathjax-exps">$h_l(\cdot)$</span>：第<span class="mathjax-exps">$l$</span>层的激活函数</p>
<p><span class="mathjax-exps">$\Wv_l \in \Rbb^{n_l \times n_{l-1}}$</span>：第<span class="mathjax-exps">$l-1$</span>层到第<span class="mathjax-exps">$l$</span>层的权重矩阵</p>
<p><span class="mathjax-exps">$\bv_l \in \Rbb^{n_l}$</span>：第<span class="mathjax-exps">$l$</span>层的偏置 (截距)</p>
<p><span class="mathjax-exps">$\zv_l \in \Rbb^{n_l}$</span>：第<span class="mathjax-exps">$l$</span>层神经元的输入</p>
<p><span class="mathjax-exps">$\av_l \in \Rbb^{n_l}$</span>：第<span class="mathjax-exps">$l$</span>层神经元的输出</p>
<br>
<p>第<span class="mathjax-exps">$l$</span>层的计算过程：<span class="mathjax-exps">$\zv_l = \Wv_l \av_{l-1} + \bv_l$</span>，<span class="mathjax-exps">$\av_l = h_l (\zv_l)$</span></p>
<br>
<p>整个网络：<span class="mathjax-exps">$\xv = \av_0 \xrightarrow{\Wv_1,\bv_1} \zv_1 \xrightarrow{h_1} \av_1 \xrightarrow{\Wv_2,\bv_2} \cdots \xrightarrow{\Wv_L,\bv_L} \zv_L \xrightarrow{h_L} \av_L = \hat{\yv}$</span></p>
<div class="footer"><hr class="hr_bottom"><div class="multi_column"><h6 class="bottom_left">图神经网络导论</h6><h6 class="bottom_center">神经网络</h6><h6 class="bottom_right">tengzhang@hust.edu.cn</h6></div></div>
</section></section><section><section data-notes="" lineno="100" class="slide " data-line="100" data-h="2" data-v="0">
<div class="header"><img class="hust" src=""><div class="title"><hr class="hr_top"><h5>激活函数</h5></div></div>
<p>最早的 MP 模型采用阶跃函数<span class="mathjax-exps">$1_{z \geq 0}$</span>作为激活函数</p>
<br>
<p>改进方向：</p>
<ul>
<li>连续并几乎处处可导，可以高效计算</li>
<li>导数的值域在合适的范围内，否则影响用梯度下降进行训练</li>
</ul>
<br>
<p>常见的有</p>
<ul>
<li>Sigmoid 型：Logistic 函数，Tanh 函数</li>
<li>ReLU，带泄漏的 ReLU，带参数的 ReLU，ELU，Softplus</li>
<li>Swish 函数</li>
<li>Maxout 单元</li>
</ul>
<div class="footer"><hr class="hr_bottom"><div class="multi_column"><h6 class="bottom_left">图神经网络导论</h6><h6 class="bottom_center">神经网络</h6><h6 class="bottom_right">tengzhang@hust.edu.cn</h6></div></div>
</section><section vertical="true" data-notes="" lineno="124" class="slide " data-line="124" data-h="2" data-v="1">
<div class="header"><img class="hust" src=""><div class="title"><hr class="hr_top"><h5>Sigmoid 型</h5></div></div>
<img src="data:image/svg+xml;charset=utf-8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgaGVpZ2h0PSIyNjYuOTExOTlwdCIKICAgdmVyc2lvbj0iMS4xIgogICB2aWV3Qm94PSIwIDAgMzU3LjkyMDAyIDI2Ni45MTE5OCIKICAgd2lkdGg9IjM1Ny45MjAwMXB0IgogICBpZD0ic3ZnMzQyIgogICBzb2RpcG9kaTpkb2NuYW1lPSJTaWdtb2lkLnN2ZyIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMS4xLjEgKDNiZjVhZTBkMjUsIDIwMjEtMDktMjApIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyI+CiAgPHNvZGlwb2RpOm5hbWVkdmlldwogICAgIGlkPSJuYW1lZHZpZXczNDQiCiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEuMCIKICAgICBpbmtzY2FwZTpwYWdlc2hhZG93PSIyIgogICAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwLjAiCiAgICAgaW5rc2NhcGU6cGFnZWNoZWNrZXJib2FyZD0iMCIKICAgICBpbmtzY2FwZTpkb2N1bWVudC11bml0cz0icHQiCiAgICAgc2hvd2dyaWQ9ImZhbHNlIgogICAgIGlua3NjYXBlOnpvb209IjEuODk0NTMxMiIKICAgICBpbmtzY2FwZTpjeD0iMzA2LjkzNjA5IgogICAgIGlua3NjYXBlOmN5PSIyMzAuMTM2MDkiCiAgICAgaW5rc2NhcGU6d2luZG93LXdpZHRoPSIzODQwIgogICAgIGlua3NjYXBlOndpbmRvdy1oZWlnaHQ9IjIxMDYiCiAgICAgaW5rc2NhcGU6d2luZG93LXg9IjAiCiAgICAgaW5rc2NhcGU6d2luZG93LXk9IjU0IgogICAgIGlua3NjYXBlOndpbmRvdy1tYXhpbWl6ZWQ9IjEiCiAgICAgaW5rc2NhcGU6Y3VycmVudC1sYXllcj0ic3ZnMzQyIiAvPgogIDxtZXRhZGF0YQogICAgIGlkPSJtZXRhZGF0YTIiPgogICAgPHJkZjpSREY+CiAgICAgIDxjYzpXb3JrPgogICAgICAgIDxkYzp0eXBlCiAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIgLz4KICAgICAgICA8ZGM6ZGF0ZT4yMDIxLTEwLTE5VDIzOjA3OjMzLjczNDI0NDwvZGM6ZGF0ZT4KICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD4KICAgICAgICA8ZGM6Y3JlYXRvcj4KICAgICAgICAgIDxjYzpBZ2VudD4KICAgICAgICAgICAgPGRjOnRpdGxlPk1hdHBsb3RsaWIgdjMuNC4zLCBodHRwczovL21hdHBsb3RsaWIub3JnLzwvZGM6dGl0bGU+CiAgICAgICAgICA8L2NjOkFnZW50PgogICAgICAgIDwvZGM6Y3JlYXRvcj4KICAgICAgPC9jYzpXb3JrPgogICAgPC9yZGY6UkRGPgogIDwvbWV0YWRhdGE+CiAgPGRlZnMKICAgICBpZD0iZGVmczYiPgogICAgPHN0eWxlCiAgICAgICB0eXBlPSJ0ZXh0L2NzcyIKICAgICAgIGlkPSJzdHlsZTQiPip7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46cm91bmQ7fTwvc3R5bGU+CiAgICA8ZGVmcwogICAgICAgaWQ9ImRlZnMyOTIiPgogICAgICA8cGF0aAogICAgICAgICBkPSJtIDM1MiwtMzIgcSAtODMsMCAtMTMxLDIzIC00OCwyMiAtNDgsNTQgMCw1NyA2MCw3OSA2MSwyMyA4MSwzMCAyNDksNTEgMzgzLDE1MCAxMzUsOTkgMTM1LDMxMCB2IDI5NzAgcSAwLDE1NCAtMzIsMjI3IC0zMiw3NCAtMTE1LDEwOSAtODMsMzUgLTI0Myw2MSAtMjEyLDM4IC0yMTIsMTI4IDAsMzggNTEsNTQgNTIsMTYgMTM1LDE2IDE3MywwIDI3OCwtNyAxMDYsLTYgMjAyLC05IDk2LC0zIDIzNywtMyAxNjAsMCAyNzUsMyAxMTUsMyAyMzYsOSAxMjIsNyAyOTUsNyA4MywwIDEzNCwtMTYgNTIsLTE2IDUyLC01NCAwLC00NSAtNTIsLTc3IC01MSwtMzIgLTE1OSwtNTEgLTIzNywtNDUgLTQwNCwtMTA2IC0xNjYsLTYxIC0xNjYsLTI0NiBWIDYxNCBxIDAsLTE5OCA4OSwtMjk0IDkwLC05NiA0MDQsLTk2IGggNzkzIHEgMTczLDAgMzA0LDU0IDEzMiw1NSAxOTYsMTEyIDEyOCwxMDkgMTg4LDE5NSA2MSw4NyAxNDQsMjYwIDEzLDM4IDU0LDExNSA0Miw3NyA4Nyw3NyAzOSwwIDU4LC0zOSAxOSwtMzggMTksLTc2IDAsLTcgLTMsLTE3IC0zLC05IC0zLC0xNSAtNDUsLTE2NyAtODEsLTMwMiAtMzUsLTEzNCAtNTcsLTI1NiAtMjIsLTEyMSAtMzUsLTI1NSAtNywtNDUgLTIzLC03NyAtMTYsLTMyIC02NywtMzIgLTMyMCwwIC02MTUsNyAtMjk0LDYgLTU2Niw5IC0yNzIsMyAtNTIyLDEwIFEgMTQ1OSwwIDEyMTYsMCAxMDU2LDAgODU0LC02IDY1MywtMTMgNTAyLC0yMiAzNTIsLTMyIDM1MiwtMzIgWiIKICAgICAgICAgaWQ9IkVCR2FyYW1vbmQtUmVndWxhci00YyIKICAgICAgICAgdHJhbnNmb3JtPSJzY2FsZSgwLjAxNTYyNSkiIC8+CiAgICAgIDxwYXRoCiAgICAgICAgIGQ9Ik0gMTQ5OCwtOTAgUSAxMTM5LC05MCA4NTEsNzYgNTYzLDI0MyAzOTMsNTM0IDIyNCw4MjYgMjI0LDExOTcgcSAwLDI2OSAxMDUsNTI1IDEwNiwyNTYgMjk4LDQ2NyAxOTIsMjExIDQ0OCwzMzYgMjU2LDEyNSA1NTEsMTI1IDM3MSwwIDY2OCwtMTgwIDI5OCwtMTc5IDQ3NCwtNDcwIDE3NiwtMjkxIDE3NiwtNjM3IDAsLTM3MSAtMTYzLC03MDQgUSAyNjE4LDMyNiAyMjk4LDExOCAxOTc4LC05MCAxNDk4LC05MCBaIG0gMTM0LDE5MiBxIDIxOCwwIDM5MCw4MyAxNzMsODQgMjY5LDI2OSA3NywxNDggMTAyLDM1OSAyNiwyMTEgMjYsMzk3IDAsMzA3IC0xMTIsNTkxIC0xMTIsMjg1IC0zMTQsNDY3IC0yMDEsMTgzIC00NzYsMTgzIC0xNzMsMCAtMzExLC01NSAtMTM3LC01NCAtMjUyLC0yMDEgLTEyOCwtMTYwIC0xNjcsLTM5MSAtMzgsLTIzMCAtMzgsLTQ2MCAwLC0zMTQgMTE1LC01OTkgMTE1LC0yODQgMzEzLC00NjQgMTk5LC0xNzkgNDU1LC0xNzkgeiIKICAgICAgICAgaWQ9IkVCR2FyYW1vbmQtUmVndWxhci02ZiIKICAgICAgICAgdHJhbnNmb3JtPSJzY2FsZSgwLjAxNTYyNSkiIC8+CiAgICAgIDxwYXRoCiAgICAgICAgIGQ9Im0gMTI0OCwtMTg1NiBxIC01NDQsMCAtODYxLDIwOCAtMzE3LDIwOCAtMzE3LDU2MCAwLDE2NiA1MSwyODIgNTIsMTE1IDE2MSwxOTggODksNzcgMjM5LDE5NiAxNTEsMTE4IDMxMSwyNDYgbCAyNjksLTEzIFEgNzk0LC0zNzggNjcyLC01NTcgNTUwLC03MzYgNTUwLC05OTIgcSAwLC0yNTYgMjI3LC00MzIgMjI4LC0xNzYgNTYxLC0xNzYgMzc3LDAgNjA4LDE3MyAxNjAsMTIxIDI0OSwzMTcgOTAsMTk1IDkwLDQxMiAwLDE0MSAtMTAwLDIzNCAtOTksOTMgLTMxMCwxNTEgLTIxMSw1NyAtNTUwLDc2IC02MDIsNDUgLTgzNiwxNjAgLTIzMywxMTUgLTIzMywzNTkgMCw2NCAzNSwxMTggMzUsNTQgMTEyLDExOCAxNDcsMTE2IDIxNywxNzAgNzEsNTQgMTA2LDkyIDM2LDM5IDY4LDk3IEwgMTAxMSw3NjggUSA4NzAsNzE3IDc3NCw2MzAgNjc4LDU0NCA2NzgsNDc0IHEgMCwtOTAgOTYsLTE1NyA5NiwtNjcgMjgyLC0xMDYgMTg2LC0zOCA0NTQsLTU3IDU4OSwtMzIgODc3LC0xOTIgMjg4LC0xNjAgMjg4LC00NTUgMCwtMjQ5IC0xMjUsLTQ4OSAtMTI0LC0yNDAgLTMyOSwtNDM4IC0yMDUsLTE5OSAtNDU4LC0zMTcgLTI1MywtMTE5IC01MTUsLTExOSB6IG0gNzcsMjc1OCBxIDI0MywwIDQwMywyNDYgMTYwLDI0NyAxNjAsNjEyIDAsMTg2IC04NywzNDkgLTg2LDE2MyAtMjI0LDI2MiAtMTM3LDk5IC0yOTcsOTkgLTE0NywwIC0yNzksLTEwNiAtMTMxLC0xMDUgLTIxMSwtMjcyIC04MCwtMTY2IC04MCwtMzY0IDAsLTIyNCA4MywtNDEzIDg0LC0xODkgMjI0LC0zMDEgMTQxLC0xMTIgMzA4LC0xMTIgeiBtIC0zOSwtMjI0IHEgLTI2MiwwIC00OTksMTM0IC0yMzcsMTM1IC0zODcsMzU2IC0xNTAsMjIxIC0xNTAsNDgzIDAsMzAxIDE1Niw1MjggMTU3LDIyNyA0MTMsMzU1IDI1NiwxMjggNTQ0LDEyOCAxODYsMCAzMjMsLTQ4IDEzOCwtNDggMjcyLC04NiAxNTQsLTQ1IDI0MywtNTUgOTAsLTkgMTg2LC05IDc3LDAgMTkyLDkgMTE1LDEwIDE2MCwxMCA4MywwIDgzLC05NiAwLC01NyAtNjQsLTEyMSAtMzIsLTMyIC01MSwtMzIgaCAtMTczIHEgLTE3MiwwIC0xOTIsLTUyIC02LC0yNSAtMTYsLTczIC05LC00OCAtMTYsLTEwNiAtNiwtNTcgLTYsLTExNSAwLC0zMjYgLTE0MSwtNjAyIFEgMjAyMiwxMDExIDE3OTIsODQ0IDE1NjIsNjc4IDEyODYsNjc4IFoiCiAgICAgICAgIGlkPSJFQkdhcmFtb25kLVJlZ3VsYXItNjciCiAgICAgICAgIHRyYW5zZm9ybT0ic2NhbGUoMC4wMTU2MjUpIiAvPgogICAgICA8cGF0aAogICAgICAgICBkPSJtIDI4MiwtMTkgcSAtNTgsMCAtOTMsMTYgLTM1LDE2IC0zNSw1NCAwLDUxIDQ4LDcwIDQ4LDIwIDk5LDMzIDEzNCwzMiAyMDQsODAgNzEsNDggNzEsMTYzIHYgMTM4OSBxIDAsMTcyIC02MSwzMDYgLTYxLDEzNSAtMjI3LDE2MSAtMzIsNiAtNDgsMjUgLTE2LDIwIC0xNiw1OCAwLDcwIDU4LDc3IDI1Niw1NyA0MjIsMTU2IDE2NiwxMDAgMjUwLDE2NCA1Nyw0NSA4OSw0NSAzOSwwIDM5LC0zMiAwLC01MiAtMTYsLTIwMiAtMTYsLTE1MCAtMjksLTMzMyAtMTMsLTE4MiAtMTMsLTMyOSBWIDM5NyBxIDAsLTEwOSA3MywtMTYwIDc0LC01MSAyMDIsLTgzIDUxLC0xMyA5OSwtMzMgNDgsLTE5IDQ4LC03MCAwLC03MCAtMTI4LC03MCAtMTIxLDAgLTE5NSwxMCBRIDEwNTAsMCA5ODIsNiA5MTUsMTMgODAwLDEzIDY5MSwxMyA2MjAsNiA1NTAsMCA0ODAsLTkgNDEwLC0xOSAyODIsLTE5IFogbSA1MTIsMzMyMSBxIC0xMzUsMCAtMjI4LDkzIC05Miw5MyAtOTIsMjI3IDAsMTQxIDkyLDIzNCA5Myw5MyAyMjgsOTMgMTQwLDAgMjMzLC05MyA5MywtOTMgOTMsLTIzNCAwLC0xMzQgLTkzLC0yMjcgLTkzLC05MyAtMjMzLC05MyB6IgogICAgICAgICBpZD0iRUJHYXJhbW9uZC1SZWd1bGFyLTY5IgogICAgICAgICB0cmFuc2Zvcm09InNjYWxlKDAuMDE1NjI1KSIgLz4KICAgICAgPHBhdGgKICAgICAgICAgZD0ibSA5MjIsLTkwIHEgLTE5OSwwIC0zNzIsNjEgLTE3Miw2MSAtMjk0LDE3MCAtMzIsNzAgLTQ4LDIzNiAtMTYsMTY3IC0yMiwyNzYgMCw1NyA4Myw1NyAyNSwwIDQ3LC0xMCAyMywtOSAzMCwtMzQgUSA0MjksMzUyIDYxMSwyMTcgNzk0LDgzIDk3OSw4MyBxIDE4NiwwIDMxNywxMjUgMTMxLDEyNSAxMzEsMzEwIDAsMTczIC0xMTUsMjk4IC0xMTUsMTI1IC00MDMsMzA0IC0yMTgsMTM0IC0zNTMsMjU2IC0xMzQsMTIyIC0xOTUsMjUwIC02MCwxMjggLTYwLDI4OCAwLDIwNCA5NiwzNzAgOTYsMTY3IDI4OCwyNjYgMTkyLDEwMCA0ODAsMTAwIDE5MiwwIDMyMCwtMzkgMTI4LC0zOCAxOTIsLTgzIDUxLC03MCA4NiwtMjIxIDM1LC0xNTAgMzUsLTI4NSAwLC00NCAtNjQsLTQ0IC0zOCwwIC03MywxNiAtMzUsMTYgLTQ4LDQxIC04MywyMTEgLTIwOCwzMjMgLTEyNSwxMTIgLTMxMSwxMTIgLTE2MCwwIC0yODUsLTk2IC0xMjQsLTk2IC0xMjQsLTI4MSAwLC0xNDcgOTIsLTI2MyA5MywtMTE1IDM0OSwtMjYyIDM3MiwtMjExIDU1NCwtMzk0IDE4MiwtMTgyIDE4MiwtNDgzIDAsLTM0NSAtMjYyLC01NjMgUSAxMzM4LC05MCA5MjIsLTkwIFoiCiAgICAgICAgIGlkPSJFQkdhcmFtb25kLVJlZ3VsYXItNzMiCiAgICAgICAgIHRyYW5zZm9ybT0ic2NhbGUoMC4wMTU2MjUpIiAvPgogICAgICA8cGF0aAogICAgICAgICBkPSJNIDEyMTAsLTkwIFEgODk2LC05MCA3MjAsMTAyIDU0NCwyOTQgNTQ0LDY3MiB2IDE0ODUgcSAwLDUxIC0zOSw3MyAtMzgsMjMgLTE2NiwyMyBoIC0zOCBxIC0zMiwwIC01NSw0MSAtMjIsNDIgLTIyLDg3IDAsMTMgMTksMzggMTksMjYgMjYsMzIgMTI4LDkwIDIzMywxNzkgMTA2LDkwIDE5MiwxNzYgODcsODcgMTQ0LDE1NyAzMiwzMiA1NCw1NCAyMywyMyA1NSwyMyAzMiwwIDYxLC0xMyAyOSwtMTMgMjIsLTU3IGwgLTMyLC0yODggcSAtNiwtNzEgMzIsLTk3IDM5LC0yNSAxMjIsLTI1IGggNzMwIHEgMjUsMCA0NCwtNDIgMjAsLTQxIDIwLC05OSAwLC01NyAtMjAsLTExMiAtMTksLTU0IC00NCwtNTQgaCAtNjM0IHEgLTE2MCwwIC0yMDgsLTI2IC00OCwtMjUgLTQ4LC0xNTMgViA4MTMgcSAwLC0yNTYgMTA5LC00MDQgMTA5LC0xNDcgMzEzLC0xNDcgMTg2LDAgMjg4LDI5IDEwMywyOSAxODYsODcgMTMsMTIgMjYsMTIgMjUsMCAzNCwtMjkgMTAsLTI4IDEwLC02MCAwLC0zMiAtMTA2LC0xMjggUSAxNzQ3LDc3IDE1NzcsLTYgMTQwOCwtOTAgMTIxMCwtOTAgWiIKICAgICAgICAgaWQ9IkVCR2FyYW1vbmQtUmVndWxhci03NCIKICAgICAgICAgdHJhbnNmb3JtPSJzY2FsZSgwLjAxNTYyNSkiIC8+CiAgICAgIDxwYXRoCiAgICAgICAgIGQ9Ik0gMTM2MywtOTYgUSAxMDQzLC05NiA3ODQsNjcgNTI1LDIzMCAzNzQsNTE1IDIyNCw4MDAgMjI0LDExNTIgcSAwLDQxNiAxODIsNzU1IDE4MywzMzkgNDkwLDU0MSAzMDcsMjAyIDY3OCwyMDIgNDE2LDAgNzMwLC0yMjQgNzcsLTU4IDc3LC0xMjIgMCwtNTEgLTQ1LC0xMTUgLTQ1LC02NCAtMTA5LC0xMDYgLTY0LC00MSAtMTIxLC00MSAtMzIsMCAtNjQsMjIgLTMyLDIyIC03MSw0OCAtMTQxLDEwOSAtMzE0LDIwNSAtMTcyLDk2IC0yODcsOTYgLTMxNCwwIC01MDksLTI5MiAtMTk1LC0yOTEgLTE5NSwtNzY0IDAsLTMwMSAxMzEsLTU0NCAxMzEsLTI0MyAzNTIsLTM4NCAyMjEsLTE0MSA0ODksLTE0MSAxODYsMCAzMjAsNjEgMTM1LDYxIDI4OCwyMTQgMTMsMTMgMzIsMjIgMjAsMTAgMzIsMTAgNzEsMCA3MSwtODkgMCwtMzkgLTIzLC04NyAtMjIsLTQ4IC03MywtMTEyIFEgMjE4MiwxNzkgMjA0MSw4NiAxOTAxLC02IDE3MzEsLTUxIDE1NjIsLTk2IDEzNjMsLTk2IFoiCiAgICAgICAgIGlkPSJFQkdhcmFtb25kLVJlZ3VsYXItNjMiCiAgICAgICAgIHRyYW5zZm9ybT0ic2NhbGUoMC4wMTU2MjUpIiAvPgogICAgPC9kZWZzPgogICAgPGRlZnMKICAgICAgIGlkPSJkZWZzODgiPgogICAgICA8cGF0aAogICAgICAgICBkPSJNIDAsMCBIIDMuNSIKICAgICAgICAgaWQ9Im1iNzkwODQwNTBkIgogICAgICAgICBzdHlsZT0ic3Ryb2tlOiM1ODZlNzU7c3Ryb2tlLXdpZHRoOjAuOCIgLz4KICAgIDwvZGVmcz4KICAgIDxkZWZzCiAgICAgICBpZD0iZGVmczMyMSI+CiAgICAgIDxwYXRoCiAgICAgICAgIGQ9Im0gMTM3MCwtMzIgcSAtODQsMCAtMTM1LDE2IC01MSwxNiAtNTEsNTQgMCw0NSA1MSw3MCA1MSwyNiAxNjAsNDYgMjQzLDQ0IDM3MSwxNTYgMTI4LDExMiAxMjgsMzQzIHYgMjQ4MyBxIDAsMjk0IC0xMyw0NTEgLTEyLDE1NyAtNDEsMjIxIC0yOSw2NCAtODAsNzAgLTkwLDIwIC0xODksMjMgLTk5LDMgLTI2NSwzIGggLTMwMSBxIC0xNTQsMCAtMzA1LC02MSAtMTUwLC02MSAtMjIwLC0xODkgLTE5LC0zMiAtNjQsLTkzIC00NSwtNjAgLTk2LC0xMDUgLTUxLC00NSAtMTAyLC00NSAtMjYsMCAtMzYsMjUgLTksMjYgLTksNTggMCw2NCAzMiwxMjggODksMTg2IDEzMSwzMzAgNDIsMTQ0IDY3LDM0MiAxMywxMDkgNDgsMTI4IDM1LDIwIDYxLDIwIDI2LDAgODAsLTc3IDU0LC03NyA4MCwtMTI4IDM4LC02NCAxNzYsLTk2IDEzOCwtMzIgMjcyLC0zMiBoIDIyNTMgcSAyMjQsMCAzNjQsMjUgMTQxLDI2IDI0NCw3MSA3NywzOCAxMjUsODMgNDgsNDUgMTI0LDQ1IDIwLDAgMzIsLTQ4IDEzLC00OCAxMywtOTkgMCwtMzIgLTEwLC05MCAtOSwtNTggLTE1LC05MCAtMjAsLTExNSAtMzYsLTE2NiAtMTYsLTUxIC0yMiwtOTAgLTYsLTM4IC02LC0xMjEgdiAtNzcgcSAwLC01OCAtMjYsLTEzMiAtMjYsLTczIC03NywtNzMgLTQ1LDAgLTcxLDcwIC0yNSw3MSAtNTAsMTkzIC0yNiwxMzQgLTE1NCwyMTQgLTEyOCw4MCAtNDM1LDgwIGggLTY0NyBxIC0xNDAsMCAtMjExLC0zOSAtNzAsLTM4IC05MCwtMTkyIC0xOSwtMTUzIC0xOSwtNTA1IFYgNjUzIHEgMCwtMjMxIDEzNCwtMzQzIDEzNSwtMTEyIDM3MiwtMTU2IDEwOSwtMjAgMTYwLC00NiA1MSwtMjUgNTEsLTcwIDAsLTM4IC01MSwtNTQgLTUxLC0xNiAtMTM0LC0xNiAtMTczLDAgLTI4NSwxMCAtMTEyLDkgLTIxNSwxNiAtMTAyLDYgLTI0OSw2IC0xNjAsMCAtMjc5LC02IC0xMTgsLTcgLTI0MywtMTYgLTEyNSwtMTAgLTI5NywtMTAgeiIKICAgICAgICAgaWQ9IkVCR2FyYW1vbmQtUmVndWxhci01NCIKICAgICAgICAgdHJhbnNmb3JtPSJzY2FsZSgwLjAxNTYyNSkiIC8+CiAgICAgIDxwYXRoCiAgICAgICAgIGQ9Ik0gNzQ5LC05MCBRIDYzNCwtOTAgNTE1LDAgMzk3LDkwIDMxNywyMTggcSAtODAsMTI4IC04MCwyNDMgMCwyMDUgMTA4LDMyMCAxMDksMTE1IDM0NiwyMTEgbCA2NTMsMjY5IHEgMTI4LDUxIDE1MCw4OSAyMywzOSAyOSwxNjcgbCAxMyw0MDkgcSA2LDE2NyAtOTMsMjg4IC05OSwxMjIgLTI4NSwxMjIgLTk2LDAgLTE5MiwtMzIgLTk2LC0zMiAtMTYwLC04MyAtMzgsLTI2IC01MSwtNzcgLTEzLC01MSAtMTMsLTEwOSAwLC0yNSAzLC01NyA0LC0zMiA0LC01OCAwLC0zMiAtODAsLTg3IC04MCwtNTQgLTE4MCwtOTYgLTk5LC00MSAtMTYzLC00MSAtMzIsMCAtNTEsMTYgLTE5LDE2IC0xOSw0MiAwLDEwMiA2NywyMjAgNjcsMTE5IDE4OSwyMjEgMTQ3LDEzNSAzMjAsMjM3IDE3MywxMDIgMzM5LDE2MCAxNjcsNTggMjk1LDU4IDIzMCwwIDM4MCwtMTY0IDE1MSwtMTYzIDE0NCwtNDA2IEwgMTk1OCw1NDQgcSAtNiwtMTM0IDYxLC0yMTggNjcsLTgzIDE3MCwtODMgMTYwLDAgMjM3LDcxIDMyLDMyIDUxLDMyIDMyLDAgNTEsLTIwIDE5LC0xOSAxOSwtNTEgMCwtNzAgLTcwLC0xNDEgLTEwMywtMTAyIC0yMjEsLTE2MyAtMTE4LC02MSAtMjIxLC02MSAtMjk0LDAgLTQ2NywzMzMgaCAtMTkgUSAxMzM4LDcwIDExNDYsLTEwIDk1NCwtOTAgNzQ5LC05MCBaIG0gMzAxLDMwOCBxIDEyOCwwIDIxNyw0MSA5MCw0MiAxNjAsMTEyIDMyLDMyIDU0LDg2IDIzLDU1IDI5LDE3NyBsIDEzLDMxMyBxIDcsNzEgLTYsMTAzIC0xMywzMiAtNTEsMzIgLTEzLDAgLTQ1LC03IC0zMiwtNiAtODMsLTI1IFEgOTk4LDkyOCA4NjcsNzk3IDczNiw2NjYgNzM2LDU1NyBxIDAsLTE2NyA5OSwtMjUzIDk5LC04NiAyMTUsLTg2IHoiCiAgICAgICAgIGlkPSJFQkdhcmFtb25kLVJlZ3VsYXItNjEiCiAgICAgICAgIHRyYW5zZm9ybT0ic2NhbGUoMC4wMTU2MjUpIiAvPgogICAgICA8cGF0aAogICAgICAgICBkPSJtIDI4MiwtMTkgcSAtNTgsMCAtOTMsMTYgLTM1LDE2IC0zNSw1NCAwLDUxIDM4LDY3IDM4LDE2IDEwOSwzNiA5NiwyNSAxODUsNzAgOTAsNDUgOTAsMTczIHYgMTM3NiBxIDAsMTczIC0zNSwyOTQgLTM1LDEyMiAtMjAyLDE2NyAtMjUsMTIgLTQ1LDI4IC0xOSwxNiAtMTksNTUgMCw3MCA1OCw3NyAyMjQsNTcgMzY0LDE0MCAxNDEsODQgMjc2LDE4NiAxOSwxMyAzNSwyMiAxNiwxMCAzNSwxMCAxMywwIDIyLC0xMyAxMCwtMTMgMTAsLTMyIDAsLTQ1IC0xNiwtMTgzIC0xNiwtMTM3IC0xNiwtMjI2IDAsLTI2IDMsLTQ5IDQsLTIyIDEwLC0yOCAyMjQsMjExIDQ3NywzMjAgMjUzLDEwOSA1NTMsMTA5IDMxNCwwIDUxOSwtMjU2IDIwNSwtMjU2IDIwNSwtNjM0IFYgMzk3IHEgMCwtMTI4IDg5LC0xNzAgOTAsLTQxIDE4NiwtNzMgNTEsLTIwIDk5LC00MiA0OCwtMjIgNDgsLTc0IDAsLTM4IC00NSwtNDcgLTQ1LC0xMCAtODMsLTEwIC0xMjgsMCAtMTk5LDEwIC03MCw5IC0xMzQsMTUgLTY0LDcgLTE3OSw3IC0xMDksMCAtMTgwLC03IC03MCwtNiAtMTQ0LC0xNSAtNzMsLTEwIC0yMDEsLTEwIC0zMiwwIC04MCwxMCAtNDgsOSAtNDgsNDcgMCw1MiA0OCw3NCA0OCwyMiA5OSw0MiA5NiwzMiAxODYsNzMgOTAsNDIgOTAsMTcwIHYgMTM0NCBxIDAsMjgxIC0xNTcsNDM4IC0xNTcsMTU3IC00MTksMTYzIC0yMzEsMCAtNDA0LC03NCAtMTcyLC03MyAtMzA3LC0xODIgLTI1LC0yNSAtMzgsLTY3IC0xMywtNDEgLTEzLC04MCBWIDM5NyBxIDAsLTEyOCA4OSwtMTczIDkwLC00NSAxODYsLTcwIDE0NywtMzkgMTQ3LC0xMDMgMCwtMzggLTMyLC01NCAtMzIsLTE2IC05NiwtMTYgLTEyOCwwIC0yMDIsMTAgUSAxMDQzLDAgOTc5LDYgOTE1LDEzIDgwMCwxMyA2OTEsMTMgNjI0LDYgNTU3LDAgNDgzLC05IDQxMCwtMTkgMjgyLC0xOSBaIgogICAgICAgICBpZD0iRUJHYXJhbW9uZC1SZWd1bGFyLTZlIgogICAgICAgICB0cmFuc2Zvcm09InNjYWxlKDAuMDE1NjI1KSIgLz4KICAgICAgPHBhdGgKICAgICAgICAgZD0ibSAyNTAsLTE5IHEgLTEyOCwwIC0xMjgsNzAgMCw1OCAxNDcsMTAzIDk2LDMyIDE4Miw4MyA4Nyw1MSA5MywxNzkgdiAzMjA2IHEgMCwxNzMgLTU4LDMwNCAtNTcsMTMyIC0yMjQsMTU3IC01NywxMyAtNTcsOTAgMCw1NyA1MSw3NyA5MCwzMiAyMTQsNzAgMTI1LDM4IDI1OSw4NiAxMzUsNDggMjM3LDkzIDI2LDEzIDM5LDEzIDE5LDAgMzIsLTEzIDEzLC0xMyAxMywtMzIgMCwtMzggLTE2LC0xMDkgLTE2LC03MCAtMjksLTI0MyAtMTMsLTE3MyAtMTMsLTUxOCBWIDI0ODMgcSAwLC0xMDIgOSwtMTQ3IDEwLC00NSAzNiwtOTAgMTAyLDc3IDI1MiwxNzAgMTUxLDkzIDMzNiwxNjMgMTg2LDcxIDM4NSw3MSAzMTMsMCA1MjEsLTI0NyAyMDgsLTI0NiAyMDgsLTYyNCBWIDQzNSBxIDAsLTEyOCA4MywtMTg5IDg0LC02MCAxODAsLTkyIDcwLC0yMCAxMDgsLTQyIDM5LC0yMiAzOSwtNjEgMCwtNzAgLTEyOCwtNzAgLTEyOCwwIC0xOTYsMTAgLTY3LDkgLTEyOCwxNSAtNjAsNyAtMTc1LDcgLTEwOSwwIC0xNzMsLTcgLTY0LC02IC0xMzIsLTE1IC02NywtMTAgLTE5NSwtMTAgLTEyOCwwIC0xMjgsNzAgMCw0NSAzOCw2MSAzOSwxNiAxMTAsNDIgOTYsMzIgMTcyLDkyIDc3LDYxIDc3LDE4OSB2IDEzMDYgcSAwLDE2MCAtOTMsMjkxIC05MiwxMzEgLTIyNywyMDggLTEzNCw3NyAtMjc1LDc3IC0xMjIsMCAtMjgyLC0zNiAtMTYwLC0zNSAtMjQ5LC0xMDUgLTEwMywtODMgLTEzOCwtMTczIC0zNSwtODkgLTM1LC0yODggViA0MTYgcSA2LC0xMjggODAsLTE3OSA3NCwtNTEgMTcwLC04MyA3MCwtMjAgMTA1LC00MiAzNSwtMjIgMzUsLTYxIDAsLTcwIC0xMjgsLTcwIC0xMjgsMCAtMTkyLDEwIFEgOTk4LDAgOTQwLDYgODgzLDEzIDc2OCwxMyA2NTksMTMgNTkyLDYgNTI1LDAgNDUxLC05IDM3OCwtMTkgMjUwLC0xOSBaIgogICAgICAgICBpZD0iRUJHYXJhbW9uZC1SZWd1bGFyLTY4IgogICAgICAgICB0cmFuc2Zvcm09InNjYWxlKDAuMDE1NjI1KSIgLz4KICAgIDwvZGVmcz4KICAgIDxkZWZzCiAgICAgICBpZD0iZGVmczE1Ij4KICAgICAgPHBhdGgKICAgICAgICAgZD0iTSAwLDAgViAtMy41IgogICAgICAgICBpZD0ibTViMGQyZmMzN2QiCiAgICAgICAgIHN0eWxlPSJzdHJva2U6IzU4NmU3NTtzdHJva2Utd2lkdGg6MC44IiAvPgogICAgPC9kZWZzPgogICAgPGRlZnMKICAgICAgIGlkPSJkZWZzOTciPgogICAgICA8cGF0aAogICAgICAgICBkPSJNIDc5NCw1MzEgSCAxODI1IFYgNDA5MSBMIDcwMywzODY2IHYgNTc1IGwgMTExNiwyMjUgaCA2MzEgViA1MzEgSCAzNDgxIFYgMCBIIDc5NCBaIgogICAgICAgICBpZD0iRGVqYVZ1U2Fucy0zMSIKICAgICAgICAgdHJhbnNmb3JtPSJzY2FsZSgwLjAxNTYyNSkiIC8+CiAgICAgIDxwYXRoCiAgICAgICAgIGQ9Im0gNjg0LDc5NCBoIDY2MCBWIDAgSCA2ODQgWiIKICAgICAgICAgaWQ9IkRlamFWdVNhbnMtMmUiCiAgICAgICAgIHRyYW5zZm9ybT0ic2NhbGUoMC4wMTU2MjUpIiAvPgogICAgPC9kZWZzPgogICAgPGRlZnMKICAgICAgIGlkPSJkZWZzMjQiPgogICAgICA8cGF0aAogICAgICAgICBkPSJNIDY3OCwyMjcyIEggNDY4NCBWIDE3NDEgSCA2NzggWiIKICAgICAgICAgaWQ9IkRlamFWdVNhbnMtMjIxMiIKICAgICAgICAgdHJhbnNmb3JtPSJzY2FsZSgwLjAxNTYyNSkiIC8+CiAgICAgIDxwYXRoCiAgICAgICAgIGQ9Ik0gMjQxOSw0MTE2IDgyNSwxNjI1IGggMTU5NCB6IG0gLTE2Niw1NTAgaCA3OTQgViAxNjI1IGggNjY2IFYgMTEwMCBIIDMwNDcgViAwIEggMjQxOSBWIDExMDAgSCAzMTMgdiA2MDkgeiIKICAgICAgICAgaWQ9IkRlamFWdVNhbnMtMzQiCiAgICAgICAgIHRyYW5zZm9ybT0ic2NhbGUoMC4wMTU2MjUpIiAvPgogICAgPC9kZWZzPgogICAgPGRlZnMKICAgICAgIGlkPSJkZWZzMTIwIj4KICAgICAgPHBhdGgKICAgICAgICAgZD0iTSA1MjUsNDY2NiBIIDM1MjUgViA0Mzk3IEwgMTgzMSwwIEggMTE3MiBMIDI3NjYsNDEzNCBIIDUyNSBaIgogICAgICAgICBpZD0iRGVqYVZ1U2Fucy0zNyIKICAgICAgICAgdHJhbnNmb3JtPSJzY2FsZSgwLjAxNTYyNSkiIC8+CiAgICAgIDxwYXRoCiAgICAgICAgIGQ9Ik0gNjkxLDQ2NjYgSCAzMTY5IFYgNDEzNCBIIDEyNjkgViAyOTkxIHEgMTM3LDQ3IDI3NCw3MCAxMzgsMjMgMjc2LDIzIDc4MSwwIDEyMzcsLTQyOCA0NTcsLTQyOCA0NTcsLTExNTkgUSAzNTEzLDc0NCAzMDQ0LDMyNiAyNTc1LC05MSAxNzIyLC05MSAxNDI4LC05MSAxMTIzLC00MSA4MTksOSA0OTQsMTA5IHYgNjM1IHEgMjgxLC0xNTMgNTgxLC0yMjggMzAwLC03NSA2MzQsLTc1IDU0MSwwIDg1NiwyODQgMzE2LDI4NCAzMTYsNzcyIDAsNDg3IC0zMTYsNzcxIC0zMTUsMjg1IC04NTYsMjg1IC0yNTMsMCAtNTA1LC01NiAtMjUxLC01NiAtNTEzLC0xNzUgeiIKICAgICAgICAgaWQ9IkRlamFWdVNhbnMtMzUiCiAgICAgICAgIHRyYW5zZm9ybT0ic2NhbGUoMC4wMTU2MjUpIiAvPgogICAgPC9kZWZzPgogICAgPGRlZnMKICAgICAgIGlkPSJkZWZzNTYiPgogICAgICA8cGF0aAogICAgICAgICBkPSJtIDIwMzQsNDI1MCBxIC00ODcsMCAtNzMzLC00ODAgLTI0NSwtNDc5IC0yNDUsLTE0NDIgMCwtOTU5IDI0NSwtMTQzOSAyNDYsLTQ4MCA3MzMsLTQ4MCA0OTEsMCA3MzYsNDgwIDI0Niw0ODAgMjQ2LDE0MzkgMCw5NjMgLTI0NiwxNDQyIC0yNDUsNDgwIC03MzYsNDgwIHogbSAwLDUwMCBxIDc4NSwwIDExOTksLTYyMSA0MTQsLTYyMCA0MTQsLTE4MDEgMCwtMTE3OCAtNDE0LC0xNzk5IC00MTQsLTYyMCAtMTE5OSwtNjIwIC03ODQsMCAtMTE5OCw2MjAgLTQxNCw2MjEgLTQxNCwxNzk5IDAsMTE4MSA0MTQsMTgwMSA0MTQsNjIxIDExOTgsNjIxIHoiCiAgICAgICAgIGlkPSJEZWphVnVTYW5zLTMwIgogICAgICAgICB0cmFuc2Zvcm09InNjYWxlKDAuMDE1NjI1KSIgLz4KICAgIDwvZGVmcz4KICAgIDxkZWZzCiAgICAgICBpZD0iZGVmczQwIj4KICAgICAgPHBhdGgKICAgICAgICAgZD0iTSAxMjI4LDUzMSBIIDM0MzEgViAwIEggNDY5IHYgNTMxIHEgMzU5LDM3MiA5NzksOTk4IDYyMSw2MjcgNzgwLDgwOSAzMDMsMzQwIDQyMyw1NzYgMTIxLDIzNiAxMjEsNDY0IDAsMzcyIC0yNjEsNjA2IC0yNjEsMjM1IC02ODAsMjM1IC0yOTcsMCAtNjI3LC0xMDMgLTMyOSwtMTAzIC03MDQsLTMxMyB2IDYzOCBxIDM4MSwxNTMgNzEyLDIzMSAzMzIsNzggNjA3LDc4IDcyNSwwIDExNTYsLTM2MyA0MzEsLTM2MiA0MzEsLTk2OCAwLC0yODggLTEwOCwtNTQ2IC0xMDcsLTI1NyAtMzkyLC02MDcgLTc4LC05MSAtNDk3LC01MjQgUSAxOTkxLDEzMDkgMTIyOCw1MzEgWiIKICAgICAgICAgaWQ9IkRlamFWdVNhbnMtMzIiCiAgICAgICAgIHRyYW5zZm9ybT0ic2NhbGUoMC4wMTU2MjUpIiAvPgogICAgPC9kZWZzPgogIDwvZGVmcz4KICA8cGF0aAogICAgIGQ9Im0gLTU3LjIsMzA0LjUyOCBoIDQ2MC44IHYgLTM0NS42IEggLTU3LjIgWiIKICAgICBzdHlsZT0iZmlsbDpub25lIgogICAgIGlkPSJwYXRoOCIgLz4KICA8ZwogICAgIGlkPSJnMTA1NCI+CiAgICA8cGF0aAogICAgICAgZD0iTSAwLjQsMjY2LjUxMiBIIDM1Ny41MiBWIDAuNCBIIDAuNCBaIgogICAgICAgc3R5bGU9ImZpbGw6bm9uZSIKICAgICAgIGlkPSJwYXRoMTEiIC8+CiAgICA8dXNlCiAgICAgICBzdHlsZT0iZmlsbDojNTg2ZTc1O3N0cm9rZTojNTg2ZTc1O3N0cm9rZS13aWR0aDowLjgiCiAgICAgICB4PSI5Ni4xMTI5MzgiCiAgICAgICB4bGluazpocmVmPSIjbTViMGQyZmMzN2QiCiAgICAgICB5PSIxNzQuNTI4IgogICAgICAgaWQ9InVzZTE3IgogICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICBoZWlnaHQ9IjEwMCUiCiAgICAgICB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNTcuMiwtNDEuMDcyKSIgLz4KICAgIDx1c2UKICAgICAgIHhsaW5rOmhyZWY9IiNEZWphVnVTYW5zLTIyMTIiCiAgICAgICBpZD0idXNlMjYiCiAgICAgICB4PSIwIgogICAgICAgeT0iMCIKICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgaGVpZ2h0PSIxMDAlIgogICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMC4xLDAsMCwtMC4xLDMxLjU0MTg0NywxMjQuMzc2MzEpIgogICAgICAgc3R5bGU9ImZpbGw6IzU4NmU3NSIgLz4KICAgIDx1c2UKICAgICAgIHg9IjgzLjc4OTA2MiIKICAgICAgIHhsaW5rOmhyZWY9IiNEZWphVnVTYW5zLTM0IgogICAgICAgaWQ9InVzZTI4IgogICAgICAgeT0iMCIKICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgaGVpZ2h0PSIxMDAlIgogICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMC4xLDAsMCwtMC4xLDMxLjU0MTg0NywxMjQuMzc2MzEpIgogICAgICAgc3R5bGU9ImZpbGw6IzU4NmU3NSIgLz4KICAgIDx1c2UKICAgICAgIHN0eWxlPSJmaWxsOiM1ODZlNzU7c3Ryb2tlOiM1ODZlNzU7c3Ryb2tlLXdpZHRoOjAuOCIKICAgICAgIHg9IjE2Ni4xMzY0NyIKICAgICAgIHhsaW5rOmhyZWY9IiNtNWIwZDJmYzM3ZCIKICAgICAgIHk9IjE3NC41MjgiCiAgICAgICBpZD0idXNlMzQiCiAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgIGhlaWdodD0iMTAwJSIKICAgICAgIHRyYW5zZm9ybT0idHJhbnNsYXRlKC01Ny4yLC00MS4wNzIpIiAvPgogICAgPHVzZQogICAgICAgeGxpbms6aHJlZj0iI0RlamFWdVNhbnMtMjIxMiIKICAgICAgIGlkPSJ1c2U0MiIKICAgICAgIHg9IjAiCiAgICAgICB5PSIwIgogICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICBoZWlnaHQ9IjEwMCUiCiAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgwLjEsMCwwLC0wLjEsMTAxLjU2NTM4LDEyNC4zNzYzMSkiCiAgICAgICBzdHlsZT0iZmlsbDojNTg2ZTc1IiAvPgogICAgPHVzZQogICAgICAgeD0iODMuNzg5MDYyIgogICAgICAgeGxpbms6aHJlZj0iI0RlamFWdVNhbnMtMzIiCiAgICAgICBpZD0idXNlNDQiCiAgICAgICB5PSIwIgogICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICBoZWlnaHQ9IjEwMCUiCiAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgwLjEsMCwwLC0wLjEsMTAxLjU2NTM4LDEyNC4zNzYzMSkiCiAgICAgICBzdHlsZT0iZmlsbDojNTg2ZTc1IiAvPgogICAgPHVzZQogICAgICAgc3R5bGU9ImZpbGw6IzU4NmU3NTtzdHJva2U6IzU4NmU3NTtzdHJva2Utd2lkdGg6MC44IgogICAgICAgeD0iMjM2LjE2IgogICAgICAgeGxpbms6aHJlZj0iI201YjBkMmZjMzdkIgogICAgICAgeT0iMTc0LjUyOCIKICAgICAgIGlkPSJ1c2U1MCIKICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgaGVpZ2h0PSIxMDAlIgogICAgICAgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTU3LjIsLTQxLjA3MikiIC8+CiAgICA8dXNlCiAgICAgICB4bGluazpocmVmPSIjRGVqYVZ1U2Fucy0zMCIKICAgICAgIGlkPSJ1c2U1OCIKICAgICAgIHg9IjAiCiAgICAgICB5PSIwIgogICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICBoZWlnaHQ9IjEwMCUiCiAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgwLjEsMCwwLC0wLjEsMTc1Ljc3ODc1LDEyNC4zNzYzMSkiCiAgICAgICBzdHlsZT0iZmlsbDojNTg2ZTc1IiAvPgogICAgPHVzZQogICAgICAgc3R5bGU9ImZpbGw6IzU4NmU3NTtzdHJva2U6IzU4NmU3NTtzdHJva2Utd2lkdGg6MC44IgogICAgICAgeD0iMzA2LjE4MzUzIgogICAgICAgeGxpbms6aHJlZj0iI201YjBkMmZjMzdkIgogICAgICAgeT0iMTc0LjUyOCIKICAgICAgIGlkPSJ1c2U2NCIKICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgaGVpZ2h0PSIxMDAlIgogICAgICAgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTU3LjIsLTQxLjA3MikiIC8+CiAgICA8dXNlCiAgICAgICB4bGluazpocmVmPSIjRGVqYVZ1U2Fucy0zMiIKICAgICAgIGlkPSJ1c2U2OSIKICAgICAgIHg9IjAiCiAgICAgICB5PSIwIgogICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICBoZWlnaHQ9IjEwMCUiCiAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgwLjEsMCwwLC0wLjEsMjQ1LjgwMjI4LDEyNC4zNzYzMSkiCiAgICAgICBzdHlsZT0iZmlsbDojNTg2ZTc1IiAvPgogICAgPHVzZQogICAgICAgc3R5bGU9ImZpbGw6IzU4NmU3NTtzdHJva2U6IzU4NmU3NTtzdHJva2Utd2lkdGg6MC44IgogICAgICAgeD0iMzc2LjIwNzA2IgogICAgICAgeGxpbms6aHJlZj0iI201YjBkMmZjMzdkIgogICAgICAgeT0iMTc0LjUyOCIKICAgICAgIGlkPSJ1c2U3NSIKICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgaGVpZ2h0PSIxMDAlIgogICAgICAgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTU3LjIsLTQxLjA3MikiIC8+CiAgICA8dXNlCiAgICAgICB4bGluazpocmVmPSIjRGVqYVZ1U2Fucy0zNCIKICAgICAgIGlkPSJ1c2U4MCIKICAgICAgIHg9IjAiCiAgICAgICB5PSIwIgogICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICBoZWlnaHQ9IjEwMCUiCiAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgwLjEsMCwwLC0wLjEsMzE1LjgyNTgxLDEyNC4zNzYzMSkiCiAgICAgICBzdHlsZT0iZmlsbDojNTg2ZTc1IiAvPgogICAgPHVzZQogICAgICAgc3R5bGU9ImZpbGw6IzU4NmU3NTtzdHJva2U6IzU4NmU3NTtzdHJva2Utd2lkdGg6MC44IgogICAgICAgeD0iMjM2LjE2IgogICAgICAgeGxpbms6aHJlZj0iI21iNzkwODQwNTBkIgogICAgICAgeT0iMjk1LjQ4ODAxIgogICAgICAgaWQ9InVzZTkwIgogICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICBoZWlnaHQ9IjEwMCUiCiAgICAgICB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNTcuMiwtNDEuMDcyKSIgLz4KICAgIDx1c2UKICAgICAgIHhsaW5rOmhyZWY9IiNEZWphVnVTYW5zLTIyMTIiCiAgICAgICBpZD0idXNlOTkiCiAgICAgICB4PSIwIgogICAgICAgeT0iMCIKICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgaGVpZ2h0PSIxMDAlIgogICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMC4xLDAsMCwtMC4xLDE4NS45NiwyNTguMjE1MjIpIgogICAgICAgc3R5bGU9ImZpbGw6IzU4NmU3NSIgLz4KICAgIDx1c2UKICAgICAgIHg9IjgzLjc4OTA2MiIKICAgICAgIHhsaW5rOmhyZWY9IiNEZWphVnVTYW5zLTMxIgogICAgICAgaWQ9InVzZTEwMSIKICAgICAgIHk9IjAiCiAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgIGhlaWdodD0iMTAwJSIKICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KDAuMSwwLDAsLTAuMSwxODUuOTYsMjU4LjIxNTIyKSIKICAgICAgIHN0eWxlPSJmaWxsOiM1ODZlNzUiIC8+CiAgICA8dXNlCiAgICAgICB4PSIxNDcuNDEyMTEiCiAgICAgICB4bGluazpocmVmPSIjRGVqYVZ1U2Fucy0yZSIKICAgICAgIGlkPSJ1c2UxMDMiCiAgICAgICB5PSIwIgogICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICBoZWlnaHQ9IjEwMCUiCiAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgwLjEsMCwwLC0wLjEsMTg1Ljk2LDI1OC4yMTUyMikiCiAgICAgICBzdHlsZT0iZmlsbDojNTg2ZTc1IiAvPgogICAgPHVzZQogICAgICAgeD0iMTc5LjE5OTIyIgogICAgICAgeGxpbms6aHJlZj0iI0RlamFWdVNhbnMtMzAiCiAgICAgICBpZD0idXNlMTA1IgogICAgICAgeT0iMCIKICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgaGVpZ2h0PSIxMDAlIgogICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMC4xLDAsMCwtMC4xLDE4NS45NiwyNTguMjE1MjIpIgogICAgICAgc3R5bGU9ImZpbGw6IzU4NmU3NSIgLz4KICAgIDx1c2UKICAgICAgIHg9IjI0Mi44MjIyNyIKICAgICAgIHhsaW5rOmhyZWY9IiNEZWphVnVTYW5zLTMwIgogICAgICAgaWQ9InVzZTEwNyIKICAgICAgIHk9IjAiCiAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgIGhlaWdodD0iMTAwJSIKICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KDAuMSwwLDAsLTAuMSwxODUuOTYsMjU4LjIxNTIyKSIKICAgICAgIHN0eWxlPSJmaWxsOiM1ODZlNzUiIC8+CiAgICA8dXNlCiAgICAgICBzdHlsZT0iZmlsbDojNTg2ZTc1O3N0cm9rZTojNTg2ZTc1O3N0cm9rZS13aWR0aDowLjgiCiAgICAgICB4PSIyMzYuMTYiCiAgICAgICB4bGluazpocmVmPSIjbWI3OTA4NDA1MGQiCiAgICAgICB5PSIyNjUuMjQ3OTkiCiAgICAgICBpZD0idXNlMTEzIgogICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICBoZWlnaHQ9IjEwMCUiCiAgICAgICB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNTcuMiwtNDEuMDcyKSIgLz4KICAgIDx1c2UKICAgICAgIHhsaW5rOmhyZWY9IiNEZWphVnVTYW5zLTIyMTIiCiAgICAgICBpZD0idXNlMTIyIgogICAgICAgeD0iMCIKICAgICAgIHk9IjAiCiAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgIGhlaWdodD0iMTAwJSIKICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KDAuMSwwLDAsLTAuMSwxODUuOTYsMjI3Ljk3NTIyKSIKICAgICAgIHN0eWxlPSJmaWxsOiM1ODZlNzUiIC8+CiAgICA8dXNlCiAgICAgICB4PSI4My43ODkwNjIiCiAgICAgICB4bGluazpocmVmPSIjRGVqYVZ1U2Fucy0zMCIKICAgICAgIGlkPSJ1c2UxMjQiCiAgICAgICB5PSIwIgogICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICBoZWlnaHQ9IjEwMCUiCiAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgwLjEsMCwwLC0wLjEsMTg1Ljk2LDIyNy45NzUyMikiCiAgICAgICBzdHlsZT0iZmlsbDojNTg2ZTc1IiAvPgogICAgPHVzZQogICAgICAgeD0iMTQ3LjQxMjExIgogICAgICAgeGxpbms6aHJlZj0iI0RlamFWdVNhbnMtMmUiCiAgICAgICBpZD0idXNlMTI2IgogICAgICAgeT0iMCIKICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgaGVpZ2h0PSIxMDAlIgogICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMC4xLDAsMCwtMC4xLDE4NS45NiwyMjcuOTc1MjIpIgogICAgICAgc3R5bGU9ImZpbGw6IzU4NmU3NSIgLz4KICAgIDx1c2UKICAgICAgIHg9IjE3OS4xOTkyMiIKICAgICAgIHhsaW5rOmhyZWY9IiNEZWphVnVTYW5zLTM3IgogICAgICAgaWQ9InVzZTEyOCIKICAgICAgIHk9IjAiCiAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgIGhlaWdodD0iMTAwJSIKICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KDAuMSwwLDAsLTAuMSwxODUuOTYsMjI3Ljk3NTIyKSIKICAgICAgIHN0eWxlPSJmaWxsOiM1ODZlNzUiIC8+CiAgICA8dXNlCiAgICAgICB4PSIyNDIuODIyMjciCiAgICAgICB4bGluazpocmVmPSIjRGVqYVZ1U2Fucy0zNSIKICAgICAgIGlkPSJ1c2UxMzAiCiAgICAgICB5PSIwIgogICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICBoZWlnaHQ9IjEwMCUiCiAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgwLjEsMCwwLC0wLjEsMTg1Ljk2LDIyNy45NzUyMikiCiAgICAgICBzdHlsZT0iZmlsbDojNTg2ZTc1IiAvPgogICAgPHVzZQogICAgICAgc3R5bGU9ImZpbGw6IzU4NmU3NTtzdHJva2U6IzU4NmU3NTtzdHJva2Utd2lkdGg6MC44IgogICAgICAgeD0iMjM2LjE2IgogICAgICAgeGxpbms6aHJlZj0iI21iNzkwODQwNTBkIgogICAgICAgeT0iMjM1LjAwOCIKICAgICAgIGlkPSJ1c2UxMzYiCiAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgIGhlaWdodD0iMTAwJSIKICAgICAgIHRyYW5zZm9ybT0idHJhbnNsYXRlKC01Ny4yLC00MS4wNzIpIiAvPgogICAgPHVzZQogICAgICAgeGxpbms6aHJlZj0iI0RlamFWdVNhbnMtMjIxMiIKICAgICAgIGlkPSJ1c2UxNDEiCiAgICAgICB4PSIwIgogICAgICAgeT0iMCIKICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgaGVpZ2h0PSIxMDAlIgogICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMC4xLDAsMCwtMC4xLDE4NS45NiwxOTcuNzM1MjIpIgogICAgICAgc3R5bGU9ImZpbGw6IzU4NmU3NSIgLz4KICAgIDx1c2UKICAgICAgIHg9IjgzLjc4OTA2MiIKICAgICAgIHhsaW5rOmhyZWY9IiNEZWphVnVTYW5zLTMwIgogICAgICAgaWQ9InVzZTE0MyIKICAgICAgIHk9IjAiCiAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgIGhlaWdodD0iMTAwJSIKICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KDAuMSwwLDAsLTAuMSwxODUuOTYsMTk3LjczNTIyKSIKICAgICAgIHN0eWxlPSJmaWxsOiM1ODZlNzUiIC8+CiAgICA8dXNlCiAgICAgICB4PSIxNDcuNDEyMTEiCiAgICAgICB4bGluazpocmVmPSIjRGVqYVZ1U2Fucy0yZSIKICAgICAgIGlkPSJ1c2UxNDUiCiAgICAgICB5PSIwIgogICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICBoZWlnaHQ9IjEwMCUiCiAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgwLjEsMCwwLC0wLjEsMTg1Ljk2LDE5Ny43MzUyMikiCiAgICAgICBzdHlsZT0iZmlsbDojNTg2ZTc1IiAvPgogICAgPHVzZQogICAgICAgeD0iMTc5LjE5OTIyIgogICAgICAgeGxpbms6aHJlZj0iI0RlamFWdVNhbnMtMzUiCiAgICAgICBpZD0idXNlMTQ3IgogICAgICAgeT0iMCIKICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgaGVpZ2h0PSIxMDAlIgogICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMC4xLDAsMCwtMC4xLDE4NS45NiwxOTcuNzM1MjIpIgogICAgICAgc3R5bGU9ImZpbGw6IzU4NmU3NSIgLz4KICAgIDx1c2UKICAgICAgIHg9IjI0Mi44MjIyNyIKICAgICAgIHhsaW5rOmhyZWY9IiNEZWphVnVTYW5zLTMwIgogICAgICAgaWQ9InVzZTE0OSIKICAgICAgIHk9IjAiCiAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgIGhlaWdodD0iMTAwJSIKICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KDAuMSwwLDAsLTAuMSwxODUuOTYsMTk3LjczNTIyKSIKICAgICAgIHN0eWxlPSJmaWxsOiM1ODZlNzUiIC8+CiAgICA8dXNlCiAgICAgICBzdHlsZT0iZmlsbDojNTg2ZTc1O3N0cm9rZTojNTg2ZTc1O3N0cm9rZS13aWR0aDowLjgiCiAgICAgICB4PSIyMzYuMTYiCiAgICAgICB4bGluazpocmVmPSIjbWI3OTA4NDA1MGQiCiAgICAgICB5PSIyMDQuNzY4MDEiCiAgICAgICBpZD0idXNlMTU1IgogICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICBoZWlnaHQ9IjEwMCUiCiAgICAgICB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNTcuMiwtNDEuMDcyKSIgLz4KICAgIDx1c2UKICAgICAgIHhsaW5rOmhyZWY9IiNEZWphVnVTYW5zLTIyMTIiCiAgICAgICBpZD0idXNlMTYwIgogICAgICAgeD0iMCIKICAgICAgIHk9IjAiCiAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgIGhlaWdodD0iMTAwJSIKICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KDAuMSwwLDAsLTAuMSwxODUuOTYsMTY3LjQ5NTIyKSIKICAgICAgIHN0eWxlPSJmaWxsOiM1ODZlNzUiIC8+CiAgICA8dXNlCiAgICAgICB4PSI4My43ODkwNjIiCiAgICAgICB4bGluazpocmVmPSIjRGVqYVZ1U2Fucy0zMCIKICAgICAgIGlkPSJ1c2UxNjIiCiAgICAgICB5PSIwIgogICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICBoZWlnaHQ9IjEwMCUiCiAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgwLjEsMCwwLC0wLjEsMTg1Ljk2LDE2Ny40OTUyMikiCiAgICAgICBzdHlsZT0iZmlsbDojNTg2ZTc1IiAvPgogICAgPHVzZQogICAgICAgeD0iMTQ3LjQxMjExIgogICAgICAgeGxpbms6aHJlZj0iI0RlamFWdVNhbnMtMmUiCiAgICAgICBpZD0idXNlMTY0IgogICAgICAgeT0iMCIKICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgaGVpZ2h0PSIxMDAlIgogICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMC4xLDAsMCwtMC4xLDE4NS45NiwxNjcuNDk1MjIpIgogICAgICAgc3R5bGU9ImZpbGw6IzU4NmU3NSIgLz4KICAgIDx1c2UKICAgICAgIHg9IjE3OS4xOTkyMiIKICAgICAgIHhsaW5rOmhyZWY9IiNEZWphVnVTYW5zLTMyIgogICAgICAgaWQ9InVzZTE2NiIKICAgICAgIHk9IjAiCiAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgIGhlaWdodD0iMTAwJSIKICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KDAuMSwwLDAsLTAuMSwxODUuOTYsMTY3LjQ5NTIyKSIKICAgICAgIHN0eWxlPSJmaWxsOiM1ODZlNzUiIC8+CiAgICA8dXNlCiAgICAgICB4PSIyNDIuODIyMjciCiAgICAgICB4bGluazpocmVmPSIjRGVqYVZ1U2Fucy0zNSIKICAgICAgIGlkPSJ1c2UxNjgiCiAgICAgICB5PSIwIgogICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICBoZWlnaHQ9IjEwMCUiCiAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgwLjEsMCwwLC0wLjEsMTg1Ljk2LDE2Ny40OTUyMikiCiAgICAgICBzdHlsZT0iZmlsbDojNTg2ZTc1IiAvPgogICAgPHVzZQogICAgICAgc3R5bGU9ImZpbGw6IzU4NmU3NTtzdHJva2U6IzU4NmU3NTtzdHJva2Utd2lkdGg6MC44IgogICAgICAgeD0iMjM2LjE2IgogICAgICAgeGxpbms6aHJlZj0iI21iNzkwODQwNTBkIgogICAgICAgeT0iMTc0LjUyOCIKICAgICAgIGlkPSJ1c2UxNzQiCiAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgIGhlaWdodD0iMTAwJSIKICAgICAgIHRyYW5zZm9ybT0idHJhbnNsYXRlKC01Ny4yLC00MS4wNzIpIiAvPgogICAgPHVzZQogICAgICAgeGxpbms6aHJlZj0iI0RlamFWdVNhbnMtMzAiCiAgICAgICBpZD0idXNlMTc5IgogICAgICAgeD0iMCIKICAgICAgIHk9IjAiCiAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgIGhlaWdodD0iMTAwJSIKICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KDAuMSwwLDAsLTAuMSwxODUuOTYsMTM3LjI1NTIyKSIKICAgICAgIHN0eWxlPSJmaWxsOiM1ODZlNzUiIC8+CiAgICA8dXNlCiAgICAgICB4PSI2My42MjMwNDciCiAgICAgICB4bGluazpocmVmPSIjRGVqYVZ1U2Fucy0yZSIKICAgICAgIGlkPSJ1c2UxODEiCiAgICAgICB5PSIwIgogICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICBoZWlnaHQ9IjEwMCUiCiAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgwLjEsMCwwLC0wLjEsMTg1Ljk2LDEzNy4yNTUyMikiCiAgICAgICBzdHlsZT0iZmlsbDojNTg2ZTc1IiAvPgogICAgPHVzZQogICAgICAgeD0iOTUuNDEwMTU2IgogICAgICAgeGxpbms6aHJlZj0iI0RlamFWdVNhbnMtMzAiCiAgICAgICBpZD0idXNlMTgzIgogICAgICAgeT0iMCIKICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgaGVpZ2h0PSIxMDAlIgogICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMC4xLDAsMCwtMC4xLDE4NS45NiwxMzcuMjU1MjIpIgogICAgICAgc3R5bGU9ImZpbGw6IzU4NmU3NSIgLz4KICAgIDx1c2UKICAgICAgIHg9IjE1OS4wMzMyIgogICAgICAgeGxpbms6aHJlZj0iI0RlamFWdVNhbnMtMzAiCiAgICAgICBpZD0idXNlMTg1IgogICAgICAgeT0iMCIKICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgaGVpZ2h0PSIxMDAlIgogICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMC4xLDAsMCwtMC4xLDE4NS45NiwxMzcuMjU1MjIpIgogICAgICAgc3R5bGU9ImZpbGw6IzU4NmU3NSIgLz4KICAgIDx1c2UKICAgICAgIHN0eWxlPSJmaWxsOiM1ODZlNzU7c3Ryb2tlOiM1ODZlNzU7c3Ryb2tlLXdpZHRoOjAuOCIKICAgICAgIHg9IjIzNi4xNiIKICAgICAgIHhsaW5rOmhyZWY9IiNtYjc5MDg0MDUwZCIKICAgICAgIHk9IjE0NC4yODc5OSIKICAgICAgIGlkPSJ1c2UxOTEiCiAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgIGhlaWdodD0iMTAwJSIKICAgICAgIHRyYW5zZm9ybT0idHJhbnNsYXRlKC01Ny4yLC00MS4wNzIpIiAvPgogICAgPHVzZQogICAgICAgeGxpbms6aHJlZj0iI0RlamFWdVNhbnMtMzAiCiAgICAgICBpZD0idXNlMTk2IgogICAgICAgeD0iMCIKICAgICAgIHk9IjAiCiAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgIGhlaWdodD0iMTAwJSIKICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KDAuMSwwLDAsLTAuMSwxODUuOTYsMTA3LjAxNTIyKSIKICAgICAgIHN0eWxlPSJmaWxsOiM1ODZlNzUiIC8+CiAgICA8dXNlCiAgICAgICB4PSI2My42MjMwNDciCiAgICAgICB4bGluazpocmVmPSIjRGVqYVZ1U2Fucy0yZSIKICAgICAgIGlkPSJ1c2UxOTgiCiAgICAgICB5PSIwIgogICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICBoZWlnaHQ9IjEwMCUiCiAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgwLjEsMCwwLC0wLjEsMTg1Ljk2LDEwNy4wMTUyMikiCiAgICAgICBzdHlsZT0iZmlsbDojNTg2ZTc1IiAvPgogICAgPHVzZQogICAgICAgeD0iOTUuNDEwMTU2IgogICAgICAgeGxpbms6aHJlZj0iI0RlamFWdVNhbnMtMzIiCiAgICAgICBpZD0idXNlMjAwIgogICAgICAgeT0iMCIKICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgaGVpZ2h0PSIxMDAlIgogICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMC4xLDAsMCwtMC4xLDE4NS45NiwxMDcuMDE1MjIpIgogICAgICAgc3R5bGU9ImZpbGw6IzU4NmU3NSIgLz4KICAgIDx1c2UKICAgICAgIHg9IjE1OS4wMzMyIgogICAgICAgeGxpbms6aHJlZj0iI0RlamFWdVNhbnMtMzUiCiAgICAgICBpZD0idXNlMjAyIgogICAgICAgeT0iMCIKICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgaGVpZ2h0PSIxMDAlIgogICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMC4xLDAsMCwtMC4xLDE4NS45NiwxMDcuMDE1MjIpIgogICAgICAgc3R5bGU9ImZpbGw6IzU4NmU3NSIgLz4KICAgIDx1c2UKICAgICAgIHN0eWxlPSJmaWxsOiM1ODZlNzU7c3Ryb2tlOiM1ODZlNzU7c3Ryb2tlLXdpZHRoOjAuOCIKICAgICAgIHg9IjIzNi4xNiIKICAgICAgIHhsaW5rOmhyZWY9IiNtYjc5MDg0MDUwZCIKICAgICAgIHk9IjExNC4wNDgiCiAgICAgICBpZD0idXNlMjA4IgogICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICBoZWlnaHQ9IjEwMCUiCiAgICAgICB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNTcuMiwtNDEuMDcyKSIgLz4KICAgIDx1c2UKICAgICAgIHhsaW5rOmhyZWY9IiNEZWphVnVTYW5zLTMwIgogICAgICAgaWQ9InVzZTIxMyIKICAgICAgIHg9IjAiCiAgICAgICB5PSIwIgogICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICBoZWlnaHQ9IjEwMCUiCiAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgwLjEsMCwwLC0wLjEsMTg1Ljk2LDc2Ljc3NTIyKSIKICAgICAgIHN0eWxlPSJmaWxsOiM1ODZlNzUiIC8+CiAgICA8dXNlCiAgICAgICB4PSI2My42MjMwNDciCiAgICAgICB4bGluazpocmVmPSIjRGVqYVZ1U2Fucy0yZSIKICAgICAgIGlkPSJ1c2UyMTUiCiAgICAgICB5PSIwIgogICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICBoZWlnaHQ9IjEwMCUiCiAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgwLjEsMCwwLC0wLjEsMTg1Ljk2LDc2Ljc3NTIyKSIKICAgICAgIHN0eWxlPSJmaWxsOiM1ODZlNzUiIC8+CiAgICA8dXNlCiAgICAgICB4PSI5NS40MTAxNTYiCiAgICAgICB4bGluazpocmVmPSIjRGVqYVZ1U2Fucy0zNSIKICAgICAgIGlkPSJ1c2UyMTciCiAgICAgICB5PSIwIgogICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICBoZWlnaHQ9IjEwMCUiCiAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgwLjEsMCwwLC0wLjEsMTg1Ljk2LDc2Ljc3NTIyKSIKICAgICAgIHN0eWxlPSJmaWxsOiM1ODZlNzUiIC8+CiAgICA8dXNlCiAgICAgICB4PSIxNTkuMDMzMiIKICAgICAgIHhsaW5rOmhyZWY9IiNEZWphVnVTYW5zLTMwIgogICAgICAgaWQ9InVzZTIxOSIKICAgICAgIHk9IjAiCiAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgIGhlaWdodD0iMTAwJSIKICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KDAuMSwwLDAsLTAuMSwxODUuOTYsNzYuNzc1MjIpIgogICAgICAgc3R5bGU9ImZpbGw6IzU4NmU3NSIgLz4KICAgIDx1c2UKICAgICAgIHN0eWxlPSJmaWxsOiM1ODZlNzU7c3Ryb2tlOiM1ODZlNzU7c3Ryb2tlLXdpZHRoOjAuOCIKICAgICAgIHg9IjIzNi4xNiIKICAgICAgIHhsaW5rOmhyZWY9IiNtYjc5MDg0MDUwZCIKICAgICAgIHk9IjgzLjgwNzk5OSIKICAgICAgIGlkPSJ1c2UyMjUiCiAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgIGhlaWdodD0iMTAwJSIKICAgICAgIHRyYW5zZm9ybT0idHJhbnNsYXRlKC01Ny4yLC00MS4wNzIpIiAvPgogICAgPHVzZQogICAgICAgeGxpbms6aHJlZj0iI0RlamFWdVNhbnMtMzAiCiAgICAgICBpZD0idXNlMjMwIgogICAgICAgeD0iMCIKICAgICAgIHk9IjAiCiAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgIGhlaWdodD0iMTAwJSIKICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KDAuMSwwLDAsLTAuMSwxODUuOTYsNDYuNTM1MjE5KSIKICAgICAgIHN0eWxlPSJmaWxsOiM1ODZlNzUiIC8+CiAgICA8dXNlCiAgICAgICB4PSI2My42MjMwNDciCiAgICAgICB4bGluazpocmVmPSIjRGVqYVZ1U2Fucy0yZSIKICAgICAgIGlkPSJ1c2UyMzIiCiAgICAgICB5PSIwIgogICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICBoZWlnaHQ9IjEwMCUiCiAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgwLjEsMCwwLC0wLjEsMTg1Ljk2LDQ2LjUzNTIxOSkiCiAgICAgICBzdHlsZT0iZmlsbDojNTg2ZTc1IiAvPgogICAgPHVzZQogICAgICAgeD0iOTUuNDEwMTU2IgogICAgICAgeGxpbms6aHJlZj0iI0RlamFWdVNhbnMtMzciCiAgICAgICBpZD0idXNlMjM0IgogICAgICAgeT0iMCIKICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgaGVpZ2h0PSIxMDAlIgogICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMC4xLDAsMCwtMC4xLDE4NS45Niw0Ni41MzUyMTkpIgogICAgICAgc3R5bGU9ImZpbGw6IzU4NmU3NSIgLz4KICAgIDx1c2UKICAgICAgIHg9IjE1OS4wMzMyIgogICAgICAgeGxpbms6aHJlZj0iI0RlamFWdVNhbnMtMzUiCiAgICAgICBpZD0idXNlMjM2IgogICAgICAgeT0iMCIKICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgaGVpZ2h0PSIxMDAlIgogICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMC4xLDAsMCwtMC4xLDE4NS45Niw0Ni41MzUyMTkpIgogICAgICAgc3R5bGU9ImZpbGw6IzU4NmU3NSIgLz4KICAgIDx1c2UKICAgICAgIHN0eWxlPSJmaWxsOiM1ODZlNzU7c3Ryb2tlOiM1ODZlNzU7c3Ryb2tlLXdpZHRoOjAuOCIKICAgICAgIHg9IjIzNi4xNiIKICAgICAgIHhsaW5rOmhyZWY9IiNtYjc5MDg0MDUwZCIKICAgICAgIHk9IjUzLjU2ODAwMSIKICAgICAgIGlkPSJ1c2UyNDIiCiAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgIGhlaWdodD0iMTAwJSIKICAgICAgIHRyYW5zZm9ybT0idHJhbnNsYXRlKC01Ny4yLC00MS4wNzIpIiAvPgogICAgPHVzZQogICAgICAgeGxpbms6aHJlZj0iI0RlamFWdVNhbnMtMzEiCiAgICAgICBpZD0idXNlMjQ3IgogICAgICAgeD0iMCIKICAgICAgIHk9IjAiCiAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgIGhlaWdodD0iMTAwJSIKICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KDAuMSwwLDAsLTAuMSwxODUuOTYsMTYuMjk1MjE5KSIKICAgICAgIHN0eWxlPSJmaWxsOiM1ODZlNzUiIC8+CiAgICA8dXNlCiAgICAgICB4PSI2My42MjMwNDciCiAgICAgICB4bGluazpocmVmPSIjRGVqYVZ1U2Fucy0yZSIKICAgICAgIGlkPSJ1c2UyNDkiCiAgICAgICB5PSIwIgogICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICBoZWlnaHQ9IjEwMCUiCiAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgwLjEsMCwwLC0wLjEsMTg1Ljk2LDE2LjI5NTIxOSkiCiAgICAgICBzdHlsZT0iZmlsbDojNTg2ZTc1IiAvPgogICAgPHVzZQogICAgICAgeD0iOTUuNDEwMTU2IgogICAgICAgeGxpbms6aHJlZj0iI0RlamFWdVNhbnMtMzAiCiAgICAgICBpZD0idXNlMjUxIgogICAgICAgeT0iMCIKICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgaGVpZ2h0PSIxMDAlIgogICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMC4xLDAsMCwtMC4xLDE4NS45NiwxNi4yOTUyMTkpIgogICAgICAgc3R5bGU9ImZpbGw6IzU4NmU3NSIgLz4KICAgIDx1c2UKICAgICAgIHg9IjE1OS4wMzMyIgogICAgICAgeGxpbms6aHJlZj0iI0RlamFWdVNhbnMtMzAiCiAgICAgICBpZD0idXNlMjUzIgogICAgICAgeT0iMCIKICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgaGVpZ2h0PSIxMDAlIgogICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMC4xLDAsMCwtMC4xLDE4NS45NiwxNi4yOTUyMTkpIgogICAgICAgc3R5bGU9ImZpbGw6IzU4NmU3NSIgLz4KICAgIDxwYXRoCiAgICAgICBjbGlwLXBhdGg9InVybCgjcDczMzA2YmY4YmEpIgogICAgICAgZD0ibSA2MS4xMDExNzYsMTczLjcxODQzIDE2LjgwNTY0OCwtMC40OTMzOCAxNC4wMDQ3MDUsLTAuNjMwNTggMTEuMjAzNzYxLC0wLjcxMzIzIDkuODAzMywtMC44MzA2NiA5LjEwMzA2LC0wLjk5NDM4IDcuNzAyNTgsLTEuMDUwMTcgNy4wMDIzNiwtMS4xNTUwOSA3LjAwMjM1LC0xLjM3OTg1IDYuMzAyMTIsLTEuNDYzODkgNi4zMDIxMiwtMS43MDM0NCA1LjYwMTg4LC0xLjczODgxIDUuNjAxODgsLTEuOTcxNTIgNS42MDE4OCwtMi4yMjM3NCA1LjYwMTg5LC0yLjQ5MzQ2IDQuOTAxNjQsLTIuNDE0NDIgNC45MDE2NSwtMi42Mzg3MiA0LjkwMTY1LC0yLjg2NjI4IDUuNjAxODgsLTMuNTUyOTYgNS42MDE4OCwtMy44Mzk0IDUuNjAxODgsLTQuMTA3MDMgNi4zMDIxMiwtNC45MDQxMiA3LjAwMjM1LC01LjczNDk3IDkuODAzMywtOC4zNTI0MiAxNi44MDU2NSwtMTQuMzU1MTcgNy4wMDIzNSwtNS42ODEzMjcgNi4zMDIxMiwtNC44NDEyOCA1LjYwMTg4LC00LjA0MjQyOCA1LjYwMTg4LC0zLjc2OTE2NyA1LjYwMTg4LC0zLjQ3OTUzNiA0LjkwMTY1LC0yLjgwMTE2NSA0LjkwMTY1LC0yLjU3NDEzIDQuOTAxNjQsLTIuMzUxNDM5IDUuNjAxODksLTIuNDI0NTQ0IDUuNjAxODgsLTIuMTU4OTM5IDUuNjAxODgsLTEuOTExNDY2IDUuNjAxODgsLTEuNjgzODExIDYuMzAyMTIsLTEuNjQ3NzAzIDYuMzAyMTIsLTEuNDE0NTQzIDcuMDAyMzUsLTEuMzMyMTAxIDcuNzAyNTksLTEuMjE0OTA3IDguNDAyODIsLTEuMDc0NSA5LjEwMzA2LC0wLjkyMjU4MiA5LjgwMzMsLTAuNzY5Nzg5IDExLjIwMzc2LC0wLjY2MDMxNiAxMy4zMDQ0NywtMC41NTkyMjYgMTQuMDA0NzEsLTAuNDAyMDMxIHYgMCIKICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiNiNTg5MDA7c3Ryb2tlLXdpZHRoOjI7c3Ryb2tlLWxpbmVjYXA6c3F1YXJlIgogICAgICAgaWQ9InBhdGgyNjAiCiAgICAgICB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNTcuMiwtNDEuMDcyKSIgLz4KICAgIDxwYXRoCiAgICAgICBjbGlwLXBhdGg9InVybCgjcDczMzA2YmY4YmEpIgogICAgICAgZD0ibSA2MS4xMDExNzYsMjk1LjQ3NzAyIDQ1LjUxNTI5NCwtMC4xMzY4IDE3LjUwNTg4LC0wLjI1MzUyIDExLjIwMzc3LC0wLjM1ODYyIDguNDAyODIsLTAuNDY1OCA3LjAwMjM1LC0wLjU5ODI5IDUuNjAxODksLTAuNjgwNzcgNC45MDE2NCwtMC43OTgzMSA0LjIwMTQxLC0wLjg4MDQ3IDQuMjAxNDIsLTEuMTA5OTYgMy41MDExNywtMS4xNDA4MyAzLjUwMTE4LC0xLjM3ODU3IDMuNTAxMTgsLTEuNjYyMDUgMi44MDA5NCwtMS41Njg5NiAyLjgwMDk0LC0xLjgxNDM5IDIuODAwOTQsLTIuMDkzMTggMi44MDA5NCwtMi40MDgwOCAyLjgwMDk0LC0yLjc2MTU2IDIuODAwOTQsLTMuMTU1MzIgMi44MDA5NCwtMy41OTAyIDIuODAwOTUsLTQuMDY1NjEgMi44MDA5NCwtNC41NzkyNSAyLjgwMDk0LC01LjEyNjU5IDIuODAwOTQsLTUuNzAwNTQgMi44MDA5NCwtNi4yOTExIDIuODAwOTQsLTYuODg1MyAyLjgwMDk0LC03LjQ2NzMyIDIuODAwOTQsLTguMDE5IDMuNTAxMTgsLTEwLjcyMTQ2IDQuMjAxNDEsLTEzLjY5NjUxIDYuMzAyMTIsLTIxLjU0MDY2IDcuMDAyMzUsLTIzLjg3NDUyIDQuMjAxNDEsLTEzLjU2MzQ0IDMuNTAxMTgsLTEwLjU3NDc1IDMuNTAxMTgsLTkuNzY5ODggMi44MDA5NCwtNy4xNzg5MyAyLjgwMDk0LC02LjU4ODY3IDIuODAwOTQsLTUuOTk0NDc5IDIuODAwOTQsLTUuNDEwNzk1IDIuODAwOTQsLTQuODQ5MDg3IDIuODAwOTQsLTQuMzE3ODc4IDIuODAwOTUsLTMuODIyOTM0IDIuODAwOTQsLTMuMzY3NjIxIDIuODAwOTQsLTIuOTUzMzI1IDIuODAwOTQsLTIuNTc5ODc1IDIuODAwOTQsLTIuMjQ1OTUxIDIuODAwOTQsLTEuOTQ5NDMzIDIuODAwOTQsLTEuNjg3NjkgMi44MDA5NCwtMS40NTc4MjQgMy41MDExOCwtMS41NDI3MzIgMy41MDExOCwtMS4yNzgzNjcgMy41MDExNywtMS4wNTcwNTIgNC4yMDE0MiwtMS4wMjc3MTIgNC45MDE2NCwtMC45MzI5NDQgNC45MDE2NSwtMC43MDk5NyA2LjMwMjEyLC0wLjY2ODA4NSA3LjAwMjM1LC0wLjUxMDc4NCA5LjEwMzA2LC0wLjQyMjc0NiAxMS45MDQsLTAuMzA2NzQzIDE3LjUwNTg4LC0wLjE5OTUxNyAzMS41MTA1OSwtMC4wOTcwNCA5LjEwMzA2LC0wLjAwNzggdiAwIgogICAgICAgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6IzI2OGJkMjtzdHJva2Utd2lkdGg6MjtzdHJva2UtZGFzaGFycmF5OjcuNCwgMy4yO3N0cm9rZS1kYXNob2Zmc2V0OjAiCiAgICAgICBpZD0icGF0aDI2MyIKICAgICAgIHRyYW5zZm9ybT0idHJhbnNsYXRlKC01Ny4yLC00MS4wNzIpIiAvPgogICAgPHBhdGgKICAgICAgIGQ9Ik0gMTc4Ljk2LDI2Ni41MTIgViAwLjQiCiAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojNTg2ZTc1O3N0cm9rZS13aWR0aDowLjg7c3Ryb2tlLWxpbmVjYXA6c3F1YXJlO3N0cm9rZS1saW5lam9pbjptaXRlciIKICAgICAgIGlkPSJwYXRoMjY2IiAvPgogICAgPHBhdGgKICAgICAgIGQ9Ik0gMTc4Ljk2LDI2Ni41MTIgViAwLjQiCiAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojNTg2ZTc1O3N0cm9rZS13aWR0aDowLjg7c3Ryb2tlLWxpbmVjYXA6c3F1YXJlO3N0cm9rZS1saW5lam9pbjptaXRlciIKICAgICAgIGlkPSJwYXRoMjY5IiAvPgogICAgPHBhdGgKICAgICAgIGQ9Ik0gMC40LDEzMy40NTYgSCAzNTcuNTIiCiAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojNTg2ZTc1O3N0cm9rZS13aWR0aDowLjg7c3Ryb2tlLWxpbmVjYXA6c3F1YXJlO3N0cm9rZS1saW5lam9pbjptaXRlciIKICAgICAgIGlkPSJwYXRoMjcyIiAvPgogICAgPHBhdGgKICAgICAgIGQ9Ik0gMC40LDEzMy40NTYgSCAzNTcuNTIiCiAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojNTg2ZTc1O3N0cm9rZS13aWR0aDowLjg7c3Ryb2tlLWxpbmVjYXA6c3F1YXJlO3N0cm9rZS1saW5lam9pbjptaXRlciIKICAgICAgIGlkPSJwYXRoMjc1IiAvPgogICAgPHBhdGgKICAgICAgIGQ9Im0gMTMuOSwxOS4yMjUgaCAzMCIKICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiNiNTg5MDA7c3Ryb2tlLXdpZHRoOjI7c3Ryb2tlLWxpbmVjYXA6c3F1YXJlIgogICAgICAgaWQ9InBhdGgyODEiIC8+CiAgICA8dXNlCiAgICAgICB4bGluazpocmVmPSIjRUJHYXJhbW9uZC1SZWd1bGFyLTRjIgogICAgICAgaWQ9InVzZTI5NCIKICAgICAgIHg9IjAiCiAgICAgICB5PSIwIgogICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICBoZWlnaHQ9IjEwMCUiCiAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgwLjE1LDAsMCwtMC4xNSw1NS45LDI0LjQ3NSkiCiAgICAgICBzdHlsZT0iZmlsbDojNTg2ZTc1IiAvPgogICAgPHVzZQogICAgICAgeD0iNTguMzk5OTk0IgogICAgICAgeGxpbms6aHJlZj0iI0VCR2FyYW1vbmQtUmVndWxhci02ZiIKICAgICAgIGlkPSJ1c2UyOTYiCiAgICAgICB5PSIwIgogICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICBoZWlnaHQ9IjEwMCUiCiAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgwLjE1LDAsMCwtMC4xNSw1NS45LDI0LjQ3NSkiCiAgICAgICBzdHlsZT0iZmlsbDojNTg2ZTc1IiAvPgogICAgPHVzZQogICAgICAgeD0iMTA3Ljg5OTk4IgogICAgICAgeGxpbms6aHJlZj0iI0VCR2FyYW1vbmQtUmVndWxhci02NyIKICAgICAgIGlkPSJ1c2UyOTgiCiAgICAgICB5PSIwIgogICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICBoZWlnaHQ9IjEwMCUiCiAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgwLjE1LDAsMCwtMC4xNSw1NS45LDI0LjQ3NSkiCiAgICAgICBzdHlsZT0iZmlsbDojNTg2ZTc1IiAvPgogICAgPHVzZQogICAgICAgeD0iMTUxLjM5OTk2IgogICAgICAgeGxpbms6aHJlZj0iI0VCR2FyYW1vbmQtUmVndWxhci02OSIKICAgICAgIGlkPSJ1c2UzMDAiCiAgICAgICB5PSIwIgogICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICBoZWlnaHQ9IjEwMCUiCiAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgwLjE1LDAsMCwtMC4xNSw1NS45LDI0LjQ3NSkiCiAgICAgICBzdHlsZT0iZmlsbDojNTg2ZTc1IiAvPgogICAgPHVzZQogICAgICAgeD0iMTc1Ljg5OTk1IgogICAgICAgeGxpbms6aHJlZj0iI0VCR2FyYW1vbmQtUmVndWxhci03MyIKICAgICAgIGlkPSJ1c2UzMDIiCiAgICAgICB5PSIwIgogICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICBoZWlnaHQ9IjEwMCUiCiAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgwLjE1LDAsMCwtMC4xNSw1NS45LDI0LjQ3NSkiCiAgICAgICBzdHlsZT0iZmlsbDojNTg2ZTc1IiAvPgogICAgPHVzZQogICAgICAgeD0iMjA4LjE5OTk0IgogICAgICAgeGxpbms6aHJlZj0iI0VCR2FyYW1vbmQtUmVndWxhci03NCIKICAgICAgIGlkPSJ1c2UzMDQiCiAgICAgICB5PSIwIgogICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICBoZWlnaHQ9IjEwMCUiCiAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgwLjE1LDAsMCwtMC4xNSw1NS45LDI0LjQ3NSkiCiAgICAgICBzdHlsZT0iZmlsbDojNTg2ZTc1IiAvPgogICAgPHVzZQogICAgICAgeD0iMjM5LjU5OTkzIgogICAgICAgeGxpbms6aHJlZj0iI0VCR2FyYW1vbmQtUmVndWxhci02OSIKICAgICAgIGlkPSJ1c2UzMDYiCiAgICAgICB5PSIwIgogICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICBoZWlnaHQ9IjEwMCUiCiAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgwLjE1LDAsMCwtMC4xNSw1NS45LDI0LjQ3NSkiCiAgICAgICBzdHlsZT0iZmlsbDojNTg2ZTc1IiAvPgogICAgPHVzZQogICAgICAgeD0iMjY0LjA5OTkxIgogICAgICAgeGxpbms6aHJlZj0iI0VCR2FyYW1vbmQtUmVndWxhci02MyIKICAgICAgIGlkPSJ1c2UzMDgiCiAgICAgICB5PSIwIgogICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICBoZWlnaHQ9IjEwMCUiCiAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgwLjE1LDAsMCwtMC4xNSw1NS45LDI0LjQ3NSkiCiAgICAgICBzdHlsZT0iZmlsbDojNTg2ZTc1IiAvPgogICAgPHBhdGgKICAgICAgIGQ9Im0gMTMuOSw0MS42NSBoIDMwIgogICAgICAgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6IzI2OGJkMjtzdHJva2Utd2lkdGg6MjtzdHJva2UtZGFzaGFycmF5OjcuNCwgMy4yO3N0cm9rZS1kYXNob2Zmc2V0OjAiCiAgICAgICBpZD0icGF0aDMxMyIgLz4KICAgIDx1c2UKICAgICAgIHhsaW5rOmhyZWY9IiNFQkdhcmFtb25kLVJlZ3VsYXItNTQiCiAgICAgICBpZD0idXNlMzIzIgogICAgICAgeD0iMCIKICAgICAgIHk9IjAiCiAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgIGhlaWdodD0iMTAwJSIKICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KDAuMTUsMCwwLC0wLjE1LDU1LjksNDYuOSkiCiAgICAgICBzdHlsZT0iZmlsbDojNTg2ZTc1IiAvPgogICAgPHVzZQogICAgICAgeD0iNjYuOTk5OTg1IgogICAgICAgeGxpbms6aHJlZj0iI0VCR2FyYW1vbmQtUmVndWxhci02MSIKICAgICAgIGlkPSJ1c2UzMjUiCiAgICAgICB5PSIwIgogICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICBoZWlnaHQ9IjEwMCUiCiAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgwLjE1LDAsMCwtMC4xNSw1NS45LDQ2LjkpIgogICAgICAgc3R5bGU9ImZpbGw6IzU4NmU3NSIgLz4KICAgIDx1c2UKICAgICAgIHg9IjEwNi44OTk5OCIKICAgICAgIHhsaW5rOmhyZWY9IiNFQkdhcmFtb25kLVJlZ3VsYXItNmUiCiAgICAgICBpZD0idXNlMzI3IgogICAgICAgeT0iMCIKICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgaGVpZ2h0PSIxMDAlIgogICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMC4xNSwwLDAsLTAuMTUsNTUuOSw0Ni45KSIKICAgICAgIHN0eWxlPSJmaWxsOiM1ODZlNzUiIC8+CiAgICA8dXNlCiAgICAgICB4PSIxNTkuNjk5OTciCiAgICAgICB4bGluazpocmVmPSIjRUJHYXJhbW9uZC1SZWd1bGFyLTY4IgogICAgICAgaWQ9InVzZTMyOSIKICAgICAgIHk9IjAiCiAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgIGhlaWdodD0iMTAwJSIKICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KDAuMTUsMCwwLC0wLjE1LDU1LjksNDYuOSkiCiAgICAgICBzdHlsZT0iZmlsbDojNTg2ZTc1IiAvPgogIDwvZz4KICA8ZGVmcwogICAgIGlkPSJkZWZzMzQwIj4KICAgIDxjbGlwUGF0aAogICAgICAgaWQ9InA3MzMwNmJmOGJhIj4KICAgICAgPHJlY3QKICAgICAgICAgaGVpZ2h0PSIyNjYuMTEyIgogICAgICAgICB3aWR0aD0iMzU3LjEyIgogICAgICAgICB4PSI1Ny41OTk5OTgiCiAgICAgICAgIHk9IjQxLjQ3MiIKICAgICAgICAgaWQ9InJlY3QzMzciIC8+CiAgICA8L2NsaXBQYXRoPgogIDwvZGVmcz4KPC9zdmc+Cg==" class="width60 center top6">
<div class="footer"><hr class="hr_bottom"><div class="multi_column"><h6 class="bottom_left">图神经网络导论</h6><h6 class="bottom_center">神经网络</h6><h6 class="bottom_right">tengzhang@hust.edu.cn</h6></div></div>
</section><section vertical="true" data-notes="" lineno="132" class="slide " data-line="132" data-h="2" data-v="2">
<div class="header"><img class="hust" src=""><div class="title"><hr class="hr_top"><h5>Logistic 函数</h5></div></div>
<p>将<span class="mathjax-exps">$\Rbb$</span><span class="blue">挤压</span>到<span class="mathjax-exps">$[0,1]$</span>，输出拥有概率意义：</p>
<p>

$$
\begin{align*}
    \sigma(z) = \frac{1}{1 + \exp (-z)} = \begin{cases}
        1 &amp; z \rightarrow \infty \\
        0 &amp; z \rightarrow -\infty
    \end{cases}
\end{align*}
$$
</p>

<br>
<p>Logistic 函数连续可导，在<span class="blue">零处导数最大</span></p>
<p>

$$
\begin{align*}
    \sigma'(z) &amp; = - \frac{- \exp (-z)}{(1 + \exp (-z))^2} = \frac{1}{1 + \exp (-z)} \frac{\exp (-z)}{1 + \exp (-z)} \\
    &amp; = \sigma(z) (1 - \sigma(z)) \leq \left( \frac{\sigma(z) + 1 - \sigma(z)}{2} \right)^2 \\
    &amp; = \frac{1}{4}
\end{align*}
$$
</p>

<p>均值不等式等号成立的条件是<span class="mathjax-exps">$\sigma(z) = 1 - \sigma(z)$</span>，即<span class="mathjax-exps">$z = 0$</span></p>
<div class="footer"><hr class="hr_bottom"><div class="multi_column"><h6 class="bottom_left">图神经网络导论</h6><h6 class="bottom_center">神经网络</h6><h6 class="bottom_right">tengzhang@hust.edu.cn</h6></div></div>
</section><section vertical="true" data-notes="" lineno="171" class="slide " data-line="171" data-h="2" data-v="3">
<div class="header"><img class="hust" src=""><div class="title"><hr class="hr_top"><h5>Tanh 函数</h5></div></div>
<p>将<span class="mathjax-exps">$\Rbb$</span><span class="blue">挤压</span>到<span class="mathjax-exps">$[-1,1]$</span>，<span class="blue">输出零中心化</span>，Logistic 函数的放大平移</p>
<p>

$$
\begin{align*}
    \tanh(z) &amp; = \frac{\exp(z) - \exp(-z)}{\exp(z) + \exp(-z)} = \frac{1 - \exp(-2z)}{1 + \exp(-2z)} \\
    &amp; = 2 \sigma(2z) - 1 \\
    &amp; = \begin{cases}
        1 &amp; z \rightarrow \infty \\
        -1 &amp; z \rightarrow -\infty
    \end{cases}
\end{align*}
$$
</p>

<br>
<p>性质：</p>
<ul>
<li>连续可导<span class="mathjax-exps">$\tanh'(z) = 2 (\sigma(2z))' = 4 \sigma(2z) (1 - \sigma(2z))$</span>，在<span class="mathjax-exps">$z = 0$</span>处导数最大</li>
<li>输出零中心化使得后一层的输入<span class="mathjax-exps">$\wv^\top \av + \bv$</span>也在零附近，而 Tanh 函数在零处导数最大，梯度下降更新效率较高，Logistic 函数输出恒为正，会进一步减慢梯度下降的收敛速度</li>
</ul>
<div class="footer"><hr class="hr_bottom"><div class="multi_column"><h6 class="bottom_left">图神经网络导论</h6><h6 class="bottom_center">神经网络</h6><h6 class="bottom_right">tengzhang@hust.edu.cn</h6></div></div>
</section></section><section><section data-notes="" lineno="201" class="slide " data-line="201" data-h="3" data-v="0">
<div class="header"><img class="hust" src=""><div class="title"><hr class="hr_top"><h5>ReLU</h5></div></div>
<p>ReLU 全称叫修正线性单元 (<strong>re</strong>ctified <strong>l</strong>inear <strong>u</strong>nit)，定义为</p>
<p>

$$
\begin{align*}
    \relu(z) = \max \{ 0, z \} = \begin{cases}
        z &amp; z \geq 0 \\ 0 &amp; z &lt; 0
    \end{cases}
\end{align*}
$$
</p>

<br>
<p>优点</p>
<ul>
<li>计算只涉及加法、乘法和比较操作，非常高效</li>
<li>生物学解释：单侧抑制，宽兴奋边界，稀疏兴奋</li>
<li>在<span class="mathjax-exps">$z &gt; 0$</span>时导数恒为<span class="mathjax-exps">$1$</span>，缓解了<span class="blue">梯度消失</span>问题</li>
</ul>
<br>
<p>缺点</p>
<ul>
<li>输出非零中心化，对下一层不友好</li>
<li>死亡 ReLU 问题：对异常值特别敏感</li>
</ul>
<div class="footer"><hr class="hr_bottom"><div class="multi_column"><h6 class="bottom_left">图神经网络导论</h6><h6 class="bottom_center">神经网络</h6><h6 class="bottom_right">tengzhang@hust.edu.cn</h6></div></div>
</section><section vertical="true" data-notes="" lineno="236" class="slide " data-line="236" data-h="3" data-v="1">
<div class="header"><img class="hust" src=""><div class="title"><hr class="hr_top"><h5>死亡 ReLU 问题</h5></div></div>
<p>由链式法则有</p>
<p>

$$
\begin{align*}
    \frac{\partial \relu(\wv^\top \xv + b)}{\partial \wv} &amp; = \frac{\partial \relu(\wv^\top \xv + b)}{\partial (\wv^\top \xv + b)} \frac{\partial (\wv^\top \xv + b)}{\partial \wv} \\
    &amp; = \frac{\partial \max \{ 0, \wv^\top \xv + b \}}{\partial (\wv^\top \xv + b)} \xv^\top \\
    &amp; = 1_{\wv^\top \xv + b \geq 0} \xv^\top
\end{align*}
$$
</p>

<p>如果第一个隐藏层中的某个神经元的权重向量<span class="mathjax-exps">$\wv$</span>初始化不当，使得对任意<span class="mathjax-exps">$\xv$</span>有<span class="mathjax-exps">$\wv^\top \xv + b &lt; 0$</span>，那么其关于<span class="mathjax-exps">$\wv$</span>的梯度将为零，在以后的训练过程中<span class="mathjax-exps">$\wv$</span>永远不会被更新</p>
<br>
<p>方案：带泄漏的 ReLU，带参数的 ReLU，ELU，Softplus</p>
<div class="footer"><hr class="hr_bottom"><div class="multi_column"><h6 class="bottom_left">图神经网络导论</h6><h6 class="bottom_center">神经网络</h6><h6 class="bottom_right">tengzhang@hust.edu.cn</h6></div></div>
</section><section vertical="true" data-notes="" lineno="262" class="slide " data-line="262" data-h="3" data-v="2">
<div class="header"><img class="hust" src=""><div class="title"><hr class="hr_top"><h5>ReLU 变体</h5></div></div>
<p>带泄漏的 ReLU：当<span class="mathjax-exps">$\wv^\top \xv + b &lt; 0$</span>时也有非零梯度</p>
<p>

$$
\begin{align*}
    \lrelu(z) &amp; = \begin{cases}
        z &amp; z \geq 0 \\ \gamma z &amp; z &lt; 0
    \end{cases} \\
    &amp; = \max \{ 0, z \} + \gamma \min \{ 0, z \} \overset{\gamma &lt; 1}{=} \max \{ z, \gamma z \}
\end{align*}
$$
</p>

<p>其中斜率<span class="mathjax-exps">$\gamma$</span>是一个很小的常数，比如<span class="mathjax-exps">$0.01$</span></p>
<br>
<p>带参数的 ReLU：斜率<span class="mathjax-exps">$\gamma_i$</span>可学习</p>
<p>

$$
\begin{align*}
    \prelu(z) &amp; = \begin{cases}
        z &amp; z \geq 0 \\ \gamma_i z &amp; z &lt; 0
    \end{cases} \\
    &amp; = \max \{ 0, z \} + \gamma_i \min \{ 0, z \}
\end{align*}
$$
</p>

<p>可以不同神经元具有不同的参数，也可以一组神经元共享一个参数</p>
<div class="footer"><hr class="hr_bottom"><div class="multi_column"><h6 class="bottom_left">图神经网络导论</h6><h6 class="bottom_center">神经网络</h6><h6 class="bottom_right">tengzhang@hust.edu.cn</h6></div></div>
</section><section vertical="true" data-notes="" lineno="304" class="slide " data-line="304" data-h="3" data-v="3">
<div class="header"><img class="hust" src=""><div class="title"><hr class="hr_top"><h5>ReLU 变体</h5></div></div>
<p>ELU 全称叫指数线性单元 (<strong>e</strong>xponential <strong>l</strong>inear <strong>u</strong>nit)</p>
<p>

$$
\begin{align*}
    \elu(z) &amp; = \begin{cases}
        z &amp; z \geq 0 \\ \gamma (\exp(z) - 1) &amp; z &lt; 0
    \end{cases} \\
    &amp; = \max \{ 0, z \} + \min \{ 0, \gamma (\exp(z) - 1) \}
\end{align*}
$$
</p>

<div class="bottom4"></div>
<p>Softplus 函数可以看作 ReLU 的平滑版本：</p>
<p>

$$
\begin{align*}
    \softplus(z) = \log (1 + \exp(z))
\end{align*}
$$
</p>

<p>其导数为 Logistic 函数</p>
<p>

$$
\begin{align*}
    \softplus'(z) = \frac{\exp(z)}{1 + \exp(z)} = \frac{1}{1 + \exp(-z)}
\end{align*}
$$
</p>

<div class="footer"><hr class="hr_bottom"><div class="multi_column"><h6 class="bottom_left">图神经网络导论</h6><h6 class="bottom_center">神经网络</h6><h6 class="bottom_right">tengzhang@hust.edu.cn</h6></div></div>
</section><section vertical="true" data-notes="" lineno="351" class="slide " data-line="351" data-h="3" data-v="4">
<div class="header"><img class="hust" src=""><div class="title"><hr class="hr_top"><h5>ReLU 族</h5></div></div>
<img src="data:image/svg+xml;charset=utf-8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgaGVpZ2h0PSIyNjYuOTExOTlwdCIKICAgdmVyc2lvbj0iMS4xIgogICB2aWV3Qm94PSIwIDAgMzU3LjkyMDAyIDI2Ni45MTE5OCIKICAgd2lkdGg9IjM1Ny45MjAwMXB0IgogICBpZD0ic3ZnMzE0IgogICBzb2RpcG9kaTpkb2NuYW1lPSJSZUxVLnN2ZyIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMS4xLjEgKDNiZjVhZTBkMjUsIDIwMjEtMDktMjApIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyI+CiAgPHNvZGlwb2RpOm5hbWVkdmlldwogICAgIGlkPSJuYW1lZHZpZXczMTYiCiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEuMCIKICAgICBpbmtzY2FwZTpwYWdlc2hhZG93PSIyIgogICAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwLjAiCiAgICAgaW5rc2NhcGU6cGFnZWNoZWNrZXJib2FyZD0iMCIKICAgICBpbmtzY2FwZTpkb2N1bWVudC11bml0cz0icHQiCiAgICAgc2hvd2dyaWQ9ImZhbHNlIgogICAgIGlua3NjYXBlOnpvb209IjEuODk0NTMxMiIKICAgICBpbmtzY2FwZTpjeD0iMjMwLjkyNzg0IgogICAgIGlua3NjYXBlOmN5PSIxNzUuMjQxMjQiCiAgICAgaW5rc2NhcGU6d2luZG93LXdpZHRoPSIzODQwIgogICAgIGlua3NjYXBlOndpbmRvdy1oZWlnaHQ9IjIxMDYiCiAgICAgaW5rc2NhcGU6d2luZG93LXg9IjAiCiAgICAgaW5rc2NhcGU6d2luZG93LXk9IjU0IgogICAgIGlua3NjYXBlOndpbmRvdy1tYXhpbWl6ZWQ9IjEiCiAgICAgaW5rc2NhcGU6Y3VycmVudC1sYXllcj0ic3ZnMzE0IiAvPgogIDxtZXRhZGF0YQogICAgIGlkPSJtZXRhZGF0YTIiPgogICAgPHJkZjpSREY+CiAgICAgIDxjYzpXb3JrPgogICAgICAgIDxkYzp0eXBlCiAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIgLz4KICAgICAgICA8ZGM6ZGF0ZT4yMDIxLTEwLTIwVDA3OjUzOjI1LjkzNDEyMDwvZGM6ZGF0ZT4KICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD4KICAgICAgICA8ZGM6Y3JlYXRvcj4KICAgICAgICAgIDxjYzpBZ2VudD4KICAgICAgICAgICAgPGRjOnRpdGxlPk1hdHBsb3RsaWIgdjMuNC4zLCBodHRwczovL21hdHBsb3RsaWIub3JnLzwvZGM6dGl0bGU+CiAgICAgICAgICA8L2NjOkFnZW50PgogICAgICAgIDwvZGM6Y3JlYXRvcj4KICAgICAgPC9jYzpXb3JrPgogICAgPC9yZGY6UkRGPgogIDwvbWV0YWRhdGE+CiAgPGRlZnMKICAgICBpZD0iZGVmczYiPgogICAgPHN0eWxlCiAgICAgICB0eXBlPSJ0ZXh0L2NzcyIKICAgICAgIGlkPSJzdHlsZTQiPip7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46cm91bmQ7fTwvc3R5bGU+CiAgPC9kZWZzPgogIDxwYXRoCiAgICAgZD0ibSAtNTcuMiwzMDQuNTI4IGggNDYwLjggdiAtMzQ1LjYgSCAtNTcuMiBaIgogICAgIHN0eWxlPSJmaWxsOm5vbmUiCiAgICAgaWQ9InBhdGg4IiAvPgogIDxnCiAgICAgaWQ9ImxpbmUyZF8xOCIKICAgICB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNTcuMiwtNDEuMDcyKSIgLz4KICA8ZwogICAgIGlkPSJsaW5lMmRfMjAiCiAgICAgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTU3LjIsLTQxLjA3MikiIC8+CiAgPGcKICAgICBpZD0ibGluZTJkXzIyIgogICAgIHRyYW5zZm9ybT0idHJhbnNsYXRlKC01Ny4yLC00MS4wNzIpIiAvPgogIDxnCiAgICAgaWQ9ImxpbmUyZF8yNCIKICAgICB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNTcuMiwtNDEuMDcyKSIgLz4KICA8ZwogICAgIGlkPSJnMTEzNiIKICAgICB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNTcuMiwtNDEuMDcyKSI+CiAgICA8cGF0aAogICAgICAgZD0iTSA1Ny42LDMwNy41ODQgSCA0MTQuNzIgViA0MS40NzIgSCA1Ny42IFoiCiAgICAgICBzdHlsZT0iZmlsbDpub25lIgogICAgICAgaWQ9InBhdGgxMSIgLz4KICAgIDxnCiAgICAgICBpZD0ieHRpY2tfMSI+CiAgICAgIDxnCiAgICAgICAgIGlkPSJsaW5lMmRfMSI+CiAgICAgICAgPGRlZnMKICAgICAgICAgICBpZD0iZGVmczE1Ij4KICAgICAgICAgIDxwYXRoCiAgICAgICAgICAgICBkPSJNIDAsMCBWIC0zLjUiCiAgICAgICAgICAgICBpZD0ibTdiYTIxOGRiOWMiCiAgICAgICAgICAgICBzdHlsZT0ic3Ryb2tlOiM1ODZlNzU7c3Ryb2tlLXdpZHRoOjAuOCIgLz4KICAgICAgICA8L2RlZnM+CiAgICAgICAgPGcKICAgICAgICAgICBpZD0iZzE5Ij4KICAgICAgICAgIDx1c2UKICAgICAgICAgICAgIHN0eWxlPSJmaWxsOiM1ODZlNzU7c3Ryb2tlOiM1ODZlNzU7c3Ryb2tlLXdpZHRoOjAuOCIKICAgICAgICAgICAgIHg9Ijk2LjExMjkzOCIKICAgICAgICAgICAgIHhsaW5rOmhyZWY9IiNtN2JhMjE4ZGI5YyIKICAgICAgICAgICAgIHk9IjI2MC4zNzA1NyIKICAgICAgICAgICAgIGlkPSJ1c2UxNyIKICAgICAgICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgICAgICAgaGVpZ2h0PSIxMDAlIiAvPgogICAgICAgIDwvZz4KICAgICAgPC9nPgogICAgICA8ZwogICAgICAgICBpZD0idGV4dF8xIj4KICAgICAgICA8IS0tIOKIkjQgLS0+CiAgICAgICAgPGcKICAgICAgICAgICBzdHlsZT0iZmlsbDojNTg2ZTc1IgogICAgICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KDAuMSwwLDAsLTAuMSw4OC43NDE4NDcsMjUxLjI5MDg5KSIKICAgICAgICAgICBpZD0iZzMwIj4KICAgICAgICAgIDxkZWZzCiAgICAgICAgICAgICBpZD0iZGVmczI0Ij4KICAgICAgICAgICAgPHBhdGgKICAgICAgICAgICAgICAgZD0iTSA2NzgsMjI3MiBIIDQ2ODQgViAxNzQxIEggNjc4IFoiCiAgICAgICAgICAgICAgIGlkPSJEZWphVnVTYW5zLTIyMTIiCiAgICAgICAgICAgICAgIHRyYW5zZm9ybT0ic2NhbGUoMC4wMTU2MjUpIiAvPgogICAgICAgICAgICA8cGF0aAogICAgICAgICAgICAgICBkPSJNIDI0MTksNDExNiA4MjUsMTYyNSBoIDE1OTQgeiBtIC0xNjYsNTUwIGggNzk0IFYgMTYyNSBoIDY2NiBWIDExMDAgSCAzMDQ3IFYgMCBIIDI0MTkgViAxMTAwIEggMzEzIHYgNjA5IHoiCiAgICAgICAgICAgICAgIGlkPSJEZWphVnVTYW5zLTM0IgogICAgICAgICAgICAgICB0cmFuc2Zvcm09InNjYWxlKDAuMDE1NjI1KSIgLz4KICAgICAgICAgIDwvZGVmcz4KICAgICAgICAgIDx1c2UKICAgICAgICAgICAgIHhsaW5rOmhyZWY9IiNEZWphVnVTYW5zLTIyMTIiCiAgICAgICAgICAgICBpZD0idXNlMjYiCiAgICAgICAgICAgICB4PSIwIgogICAgICAgICAgICAgeT0iMCIKICAgICAgICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgICAgICAgaGVpZ2h0PSIxMDAlIiAvPgogICAgICAgICAgPHVzZQogICAgICAgICAgICAgeD0iODMuNzg5MDYyIgogICAgICAgICAgICAgeGxpbms6aHJlZj0iI0RlamFWdVNhbnMtMzQiCiAgICAgICAgICAgICBpZD0idXNlMjgiCiAgICAgICAgICAgICB5PSIwIgogICAgICAgICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICAgICAgICBoZWlnaHQ9IjEwMCUiIC8+CiAgICAgICAgPC9nPgogICAgICA8L2c+CiAgICA8L2c+CiAgICA8ZwogICAgICAgaWQ9Inh0aWNrXzIiPgogICAgICA8ZwogICAgICAgICBpZD0ibGluZTJkXzIiPgogICAgICAgIDxnCiAgICAgICAgICAgaWQ9ImczNiI+CiAgICAgICAgICA8dXNlCiAgICAgICAgICAgICBzdHlsZT0iZmlsbDojNTg2ZTc1O3N0cm9rZTojNTg2ZTc1O3N0cm9rZS13aWR0aDowLjgiCiAgICAgICAgICAgICB4PSIxNjYuMTM2NDciCiAgICAgICAgICAgICB4bGluazpocmVmPSIjbTdiYTIxOGRiOWMiCiAgICAgICAgICAgICB5PSIyNjAuMzcwNTciCiAgICAgICAgICAgICBpZD0idXNlMzQiCiAgICAgICAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgICAgICAgIGhlaWdodD0iMTAwJSIgLz4KICAgICAgICA8L2c+CiAgICAgIDwvZz4KICAgICAgPGcKICAgICAgICAgaWQ9InRleHRfMiI+CiAgICAgICAgPCEtLSDiiJIyIC0tPgogICAgICAgIDxnCiAgICAgICAgICAgc3R5bGU9ImZpbGw6IzU4NmU3NSIKICAgICAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgwLjEsMCwwLC0wLjEsMTU4Ljc2NTM4LDI1MS4yOTA4OSkiCiAgICAgICAgICAgaWQ9Imc0NiI+CiAgICAgICAgICA8ZGVmcwogICAgICAgICAgICAgaWQ9ImRlZnM0MCI+CiAgICAgICAgICAgIDxwYXRoCiAgICAgICAgICAgICAgIGQ9Ik0gMTIyOCw1MzEgSCAzNDMxIFYgMCBIIDQ2OSB2IDUzMSBxIDM1OSwzNzIgOTc5LDk5OCA2MjEsNjI3IDc4MCw4MDkgMzAzLDM0MCA0MjMsNTc2IDEyMSwyMzYgMTIxLDQ2NCAwLDM3MiAtMjYxLDYwNiAtMjYxLDIzNSAtNjgwLDIzNSAtMjk3LDAgLTYyNywtMTAzIC0zMjksLTEwMyAtNzA0LC0zMTMgdiA2MzggcSAzODEsMTUzIDcxMiwyMzEgMzMyLDc4IDYwNyw3OCA3MjUsMCAxMTU2LC0zNjMgNDMxLC0zNjIgNDMxLC05NjggMCwtMjg4IC0xMDgsLTU0NiAtMTA3LC0yNTcgLTM5MiwtNjA3IC03OCwtOTEgLTQ5NywtNTI0IFEgMTk5MSwxMzA5IDEyMjgsNTMxIFoiCiAgICAgICAgICAgICAgIGlkPSJEZWphVnVTYW5zLTMyIgogICAgICAgICAgICAgICB0cmFuc2Zvcm09InNjYWxlKDAuMDE1NjI1KSIgLz4KICAgICAgICAgIDwvZGVmcz4KICAgICAgICAgIDx1c2UKICAgICAgICAgICAgIHhsaW5rOmhyZWY9IiNEZWphVnVTYW5zLTIyMTIiCiAgICAgICAgICAgICBpZD0idXNlNDIiCiAgICAgICAgICAgICB4PSIwIgogICAgICAgICAgICAgeT0iMCIKICAgICAgICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgICAgICAgaGVpZ2h0PSIxMDAlIiAvPgogICAgICAgICAgPHVzZQogICAgICAgICAgICAgeD0iODMuNzg5MDYyIgogICAgICAgICAgICAgeGxpbms6aHJlZj0iI0RlamFWdVNhbnMtMzIiCiAgICAgICAgICAgICBpZD0idXNlNDQiCiAgICAgICAgICAgICB5PSIwIgogICAgICAgICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICAgICAgICBoZWlnaHQ9IjEwMCUiIC8+CiAgICAgICAgPC9nPgogICAgICA8L2c+CiAgICA8L2c+CiAgICA8ZwogICAgICAgaWQ9Inh0aWNrXzMiPgogICAgICA8ZwogICAgICAgICBpZD0ibGluZTJkXzMiPgogICAgICAgIDxnCiAgICAgICAgICAgaWQ9Imc1MiI+CiAgICAgICAgICA8dXNlCiAgICAgICAgICAgICBzdHlsZT0iZmlsbDojNTg2ZTc1O3N0cm9rZTojNTg2ZTc1O3N0cm9rZS13aWR0aDowLjgiCiAgICAgICAgICAgICB4PSIyMzYuMTYiCiAgICAgICAgICAgICB4bGluazpocmVmPSIjbTdiYTIxOGRiOWMiCiAgICAgICAgICAgICB5PSIyNjAuMzcwNTciCiAgICAgICAgICAgICBpZD0idXNlNTAiCiAgICAgICAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgICAgICAgIGhlaWdodD0iMTAwJSIgLz4KICAgICAgICA8L2c+CiAgICAgIDwvZz4KICAgICAgPGcKICAgICAgICAgaWQ9InRleHRfMyI+CiAgICAgICAgPCEtLSAwIC0tPgogICAgICAgIDxnCiAgICAgICAgICAgc3R5bGU9ImZpbGw6IzU4NmU3NSIKICAgICAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgwLjEsMCwwLC0wLjEsMjMyLjk3ODc1LDI1MS4yOTA4OSkiCiAgICAgICAgICAgaWQ9Imc2MCI+CiAgICAgICAgICA8ZGVmcwogICAgICAgICAgICAgaWQ9ImRlZnM1NiI+CiAgICAgICAgICAgIDxwYXRoCiAgICAgICAgICAgICAgIGQ9Im0gMjAzNCw0MjUwIHEgLTQ4NywwIC03MzMsLTQ4MCAtMjQ1LC00NzkgLTI0NSwtMTQ0MiAwLC05NTkgMjQ1LC0xNDM5IDI0NiwtNDgwIDczMywtNDgwIDQ5MSwwIDczNiw0ODAgMjQ2LDQ4MCAyNDYsMTQzOSAwLDk2MyAtMjQ2LDE0NDIgLTI0NSw0ODAgLTczNiw0ODAgeiBtIDAsNTAwIHEgNzg1LDAgMTE5OSwtNjIxIDQxNCwtNjIwIDQxNCwtMTgwMSAwLC0xMTc4IC00MTQsLTE3OTkgLTQxNCwtNjIwIC0xMTk5LC02MjAgLTc4NCwwIC0xMTk4LDYyMCAtNDE0LDYyMSAtNDE0LDE3OTkgMCwxMTgxIDQxNCwxODAxIDQxNCw2MjEgMTE5OCw2MjEgeiIKICAgICAgICAgICAgICAgaWQ9IkRlamFWdVNhbnMtMzAiCiAgICAgICAgICAgICAgIHRyYW5zZm9ybT0ic2NhbGUoMC4wMTU2MjUpIiAvPgogICAgICAgICAgPC9kZWZzPgogICAgICAgICAgPHVzZQogICAgICAgICAgICAgeGxpbms6aHJlZj0iI0RlamFWdVNhbnMtMzAiCiAgICAgICAgICAgICBpZD0idXNlNTgiCiAgICAgICAgICAgICB4PSIwIgogICAgICAgICAgICAgeT0iMCIKICAgICAgICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgICAgICAgaGVpZ2h0PSIxMDAlIiAvPgogICAgICAgIDwvZz4KICAgICAgPC9nPgogICAgPC9nPgogICAgPGcKICAgICAgIGlkPSJ4dGlja180Ij4KICAgICAgPGcKICAgICAgICAgaWQ9ImxpbmUyZF80Ij4KICAgICAgICA8ZwogICAgICAgICAgIGlkPSJnNjYiPgogICAgICAgICAgPHVzZQogICAgICAgICAgICAgc3R5bGU9ImZpbGw6IzU4NmU3NTtzdHJva2U6IzU4NmU3NTtzdHJva2Utd2lkdGg6MC44IgogICAgICAgICAgICAgeD0iMzA2LjE4MzUzIgogICAgICAgICAgICAgeGxpbms6aHJlZj0iI203YmEyMThkYjljIgogICAgICAgICAgICAgeT0iMjYwLjM3MDU3IgogICAgICAgICAgICAgaWQ9InVzZTY0IgogICAgICAgICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICAgICAgICBoZWlnaHQ9IjEwMCUiIC8+CiAgICAgICAgPC9nPgogICAgICA8L2c+CiAgICAgIDxnCiAgICAgICAgIGlkPSJ0ZXh0XzQiPgogICAgICAgIDwhLS0gMiAtLT4KICAgICAgICA8ZwogICAgICAgICAgIHN0eWxlPSJmaWxsOiM1ODZlNzUiCiAgICAgICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMC4xLDAsMCwtMC4xLDMwMy4wMDIyOCwyNTEuMjkwODkpIgogICAgICAgICAgIGlkPSJnNzEiPgogICAgICAgICAgPHVzZQogICAgICAgICAgICAgeGxpbms6aHJlZj0iI0RlamFWdVNhbnMtMzIiCiAgICAgICAgICAgICBpZD0idXNlNjkiCiAgICAgICAgICAgICB4PSIwIgogICAgICAgICAgICAgeT0iMCIKICAgICAgICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgICAgICAgaGVpZ2h0PSIxMDAlIiAvPgogICAgICAgIDwvZz4KICAgICAgPC9nPgogICAgPC9nPgogICAgPGcKICAgICAgIGlkPSJ4dGlja181Ij4KICAgICAgPGcKICAgICAgICAgaWQ9ImxpbmUyZF81Ij4KICAgICAgICA8ZwogICAgICAgICAgIGlkPSJnNzciPgogICAgICAgICAgPHVzZQogICAgICAgICAgICAgc3R5bGU9ImZpbGw6IzU4NmU3NTtzdHJva2U6IzU4NmU3NTtzdHJva2Utd2lkdGg6MC44IgogICAgICAgICAgICAgeD0iMzc2LjIwNzA2IgogICAgICAgICAgICAgeGxpbms6aHJlZj0iI203YmEyMThkYjljIgogICAgICAgICAgICAgeT0iMjYwLjM3MDU3IgogICAgICAgICAgICAgaWQ9InVzZTc1IgogICAgICAgICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICAgICAgICBoZWlnaHQ9IjEwMCUiIC8+CiAgICAgICAgPC9nPgogICAgICA8L2c+CiAgICAgIDxnCiAgICAgICAgIGlkPSJ0ZXh0XzUiPgogICAgICAgIDwhLS0gNCAtLT4KICAgICAgICA8ZwogICAgICAgICAgIHN0eWxlPSJmaWxsOiM1ODZlNzUiCiAgICAgICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMC4xLDAsMCwtMC4xLDM3My4wMjU4MSwyNTEuMjkwODkpIgogICAgICAgICAgIGlkPSJnODIiPgogICAgICAgICAgPHVzZQogICAgICAgICAgICAgeGxpbms6aHJlZj0iI0RlamFWdVNhbnMtMzQiCiAgICAgICAgICAgICBpZD0idXNlODAiCiAgICAgICAgICAgICB4PSIwIgogICAgICAgICAgICAgeT0iMCIKICAgICAgICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgICAgICAgaGVpZ2h0PSIxMDAlIiAvPgogICAgICAgIDwvZz4KICAgICAgPC9nPgogICAgPC9nPgogICAgPGcKICAgICAgIGlkPSJ5dGlja18xIj4KICAgICAgPGcKICAgICAgICAgaWQ9ImxpbmUyZF82Ij4KICAgICAgICA8ZGVmcwogICAgICAgICAgIGlkPSJkZWZzODgiPgogICAgICAgICAgPHBhdGgKICAgICAgICAgICAgIGQ9Ik0gMCwwIEggMy41IgogICAgICAgICAgICAgaWQ9Im03ZTY5MTBhNzgwIgogICAgICAgICAgICAgc3R5bGU9InN0cm9rZTojNTg2ZTc1O3N0cm9rZS13aWR0aDowLjgiIC8+CiAgICAgICAgPC9kZWZzPgogICAgICAgIDxnCiAgICAgICAgICAgaWQ9Imc5MiI+CiAgICAgICAgICA8dXNlCiAgICAgICAgICAgICBzdHlsZT0iZmlsbDojNTg2ZTc1O3N0cm9rZTojNTg2ZTc1O3N0cm9rZS13aWR0aDowLjgiCiAgICAgICAgICAgICB4PSIyMzYuMTYiCiAgICAgICAgICAgICB4bGluazpocmVmPSIjbTdlNjkxMGE3ODAiCiAgICAgICAgICAgICB5PSIzMDMuMjkxODciCiAgICAgICAgICAgICBpZD0idXNlOTAiCiAgICAgICAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgICAgICAgIGhlaWdodD0iMTAwJSIgLz4KICAgICAgICA8L2c+CiAgICAgIDwvZz4KICAgICAgPGcKICAgICAgICAgaWQ9InRleHRfNiI+CiAgICAgICAgPCEtLSDiiJIxIC0tPgogICAgICAgIDxnCiAgICAgICAgICAgc3R5bGU9ImZpbGw6IzU4NmU3NSIKICAgICAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgwLjEsMCwwLC0wLjEsMjQzLjE2LDMwNy4wOTEwOSkiCiAgICAgICAgICAgaWQ9ImcxMDIiPgogICAgICAgICAgPGRlZnMKICAgICAgICAgICAgIGlkPSJkZWZzOTYiPgogICAgICAgICAgICA8cGF0aAogICAgICAgICAgICAgICBkPSJNIDc5NCw1MzEgSCAxODI1IFYgNDA5MSBMIDcwMywzODY2IHYgNTc1IGwgMTExNiwyMjUgaCA2MzEgViA1MzEgSCAzNDgxIFYgMCBIIDc5NCBaIgogICAgICAgICAgICAgICBpZD0iRGVqYVZ1U2Fucy0zMSIKICAgICAgICAgICAgICAgdHJhbnNmb3JtPSJzY2FsZSgwLjAxNTYyNSkiIC8+CiAgICAgICAgICA8L2RlZnM+CiAgICAgICAgICA8dXNlCiAgICAgICAgICAgICB4bGluazpocmVmPSIjRGVqYVZ1U2Fucy0yMjEyIgogICAgICAgICAgICAgaWQ9InVzZTk4IgogICAgICAgICAgICAgeD0iMCIKICAgICAgICAgICAgIHk9IjAiCiAgICAgICAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgICAgICAgIGhlaWdodD0iMTAwJSIgLz4KICAgICAgICAgIDx1c2UKICAgICAgICAgICAgIHg9IjgzLjc4OTA2MiIKICAgICAgICAgICAgIHhsaW5rOmhyZWY9IiNEZWphVnVTYW5zLTMxIgogICAgICAgICAgICAgaWQ9InVzZTEwMCIKICAgICAgICAgICAgIHk9IjAiCiAgICAgICAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgICAgICAgIGhlaWdodD0iMTAwJSIgLz4KICAgICAgICA8L2c+CiAgICAgIDwvZz4KICAgIDwvZz4KICAgIDxnCiAgICAgICBpZD0ieXRpY2tfMiI+CiAgICAgIDxnCiAgICAgICAgIGlkPSJsaW5lMmRfNyI+CiAgICAgICAgPGcKICAgICAgICAgICBpZD0iZzEwOCI+CiAgICAgICAgICA8dXNlCiAgICAgICAgICAgICBzdHlsZT0iZmlsbDojNTg2ZTc1O3N0cm9rZTojNTg2ZTc1O3N0cm9rZS13aWR0aDowLjgiCiAgICAgICAgICAgICB4PSIyMzYuMTYiCiAgICAgICAgICAgICB4bGluazpocmVmPSIjbTdlNjkxMGE3ODAiCiAgICAgICAgICAgICB5PSIyNjAuMzcwNTciCiAgICAgICAgICAgICBpZD0idXNlMTA2IgogICAgICAgICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICAgICAgICBoZWlnaHQ9IjEwMCUiIC8+CiAgICAgICAgPC9nPgogICAgICA8L2c+CiAgICAgIDxnCiAgICAgICAgIGlkPSJ0ZXh0XzciPgogICAgICAgIDwhLS0gMCAtLT4KICAgICAgICA8ZwogICAgICAgICAgIHN0eWxlPSJmaWxsOiM1ODZlNzUiCiAgICAgICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMC4xLDAsMCwtMC4xLDI0My4xNiwyNjQuMTY5OCkiCiAgICAgICAgICAgaWQ9ImcxMTMiPgogICAgICAgICAgPHVzZQogICAgICAgICAgICAgeGxpbms6aHJlZj0iI0RlamFWdVNhbnMtMzAiCiAgICAgICAgICAgICBpZD0idXNlMTExIgogICAgICAgICAgICAgeD0iMCIKICAgICAgICAgICAgIHk9IjAiCiAgICAgICAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgICAgICAgIGhlaWdodD0iMTAwJSIgLz4KICAgICAgICA8L2c+CiAgICAgIDwvZz4KICAgIDwvZz4KICAgIDxnCiAgICAgICBpZD0ieXRpY2tfMyI+CiAgICAgIDxnCiAgICAgICAgIGlkPSJsaW5lMmRfOCI+CiAgICAgICAgPGcKICAgICAgICAgICBpZD0iZzExOSI+CiAgICAgICAgICA8dXNlCiAgICAgICAgICAgICBzdHlsZT0iZmlsbDojNTg2ZTc1O3N0cm9rZTojNTg2ZTc1O3N0cm9rZS13aWR0aDowLjgiCiAgICAgICAgICAgICB4PSIyMzYuMTYiCiAgICAgICAgICAgICB4bGluazpocmVmPSIjbTdlNjkxMGE3ODAiCiAgICAgICAgICAgICB5PSIyMTcuNDQ5MyIKICAgICAgICAgICAgIGlkPSJ1c2UxMTciCiAgICAgICAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgICAgICAgIGhlaWdodD0iMTAwJSIgLz4KICAgICAgICA8L2c+CiAgICAgIDwvZz4KICAgICAgPGcKICAgICAgICAgaWQ9InRleHRfOCI+CiAgICAgICAgPCEtLSAxIC0tPgogICAgICAgIDxnCiAgICAgICAgICAgc3R5bGU9ImZpbGw6IzU4NmU3NSIKICAgICAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgwLjEsMCwwLC0wLjEsMjQzLjE2LDIyMS4yNDg1MSkiCiAgICAgICAgICAgaWQ9ImcxMjQiPgogICAgICAgICAgPHVzZQogICAgICAgICAgICAgeGxpbms6aHJlZj0iI0RlamFWdVNhbnMtMzEiCiAgICAgICAgICAgICBpZD0idXNlMTIyIgogICAgICAgICAgICAgeD0iMCIKICAgICAgICAgICAgIHk9IjAiCiAgICAgICAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgICAgICAgIGhlaWdodD0iMTAwJSIgLz4KICAgICAgICA8L2c+CiAgICAgIDwvZz4KICAgIDwvZz4KICAgIDxnCiAgICAgICBpZD0ieXRpY2tfNCI+CiAgICAgIDxnCiAgICAgICAgIGlkPSJsaW5lMmRfOSI+CiAgICAgICAgPGcKICAgICAgICAgICBpZD0iZzEzMCI+CiAgICAgICAgICA8dXNlCiAgICAgICAgICAgICBzdHlsZT0iZmlsbDojNTg2ZTc1O3N0cm9rZTojNTg2ZTc1O3N0cm9rZS13aWR0aDowLjgiCiAgICAgICAgICAgICB4PSIyMzYuMTYiCiAgICAgICAgICAgICB4bGluazpocmVmPSIjbTdlNjkxMGE3ODAiCiAgICAgICAgICAgICB5PSIxNzQuNTI4IgogICAgICAgICAgICAgaWQ9InVzZTEyOCIKICAgICAgICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgICAgICAgaGVpZ2h0PSIxMDAlIiAvPgogICAgICAgIDwvZz4KICAgICAgPC9nPgogICAgICA8ZwogICAgICAgICBpZD0idGV4dF85Ij4KICAgICAgICA8IS0tIDIgLS0+CiAgICAgICAgPGcKICAgICAgICAgICBzdHlsZT0iZmlsbDojNTg2ZTc1IgogICAgICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KDAuMSwwLDAsLTAuMSwyNDMuMTYsMTc4LjMyNzIyKSIKICAgICAgICAgICBpZD0iZzEzNSI+CiAgICAgICAgICA8dXNlCiAgICAgICAgICAgICB4bGluazpocmVmPSIjRGVqYVZ1U2Fucy0zMiIKICAgICAgICAgICAgIGlkPSJ1c2UxMzMiCiAgICAgICAgICAgICB4PSIwIgogICAgICAgICAgICAgeT0iMCIKICAgICAgICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgICAgICAgaGVpZ2h0PSIxMDAlIiAvPgogICAgICAgIDwvZz4KICAgICAgPC9nPgogICAgPC9nPgogICAgPGcKICAgICAgIGlkPSJ5dGlja181Ij4KICAgICAgPGcKICAgICAgICAgaWQ9ImxpbmUyZF8xMCI+CiAgICAgICAgPGcKICAgICAgICAgICBpZD0iZzE0MSI+CiAgICAgICAgICA8dXNlCiAgICAgICAgICAgICBzdHlsZT0iZmlsbDojNTg2ZTc1O3N0cm9rZTojNTg2ZTc1O3N0cm9rZS13aWR0aDowLjgiCiAgICAgICAgICAgICB4PSIyMzYuMTYiCiAgICAgICAgICAgICB4bGluazpocmVmPSIjbTdlNjkxMGE3ODAiCiAgICAgICAgICAgICB5PSIxMzEuNjA2NyIKICAgICAgICAgICAgIGlkPSJ1c2UxMzkiCiAgICAgICAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgICAgICAgIGhlaWdodD0iMTAwJSIgLz4KICAgICAgICA8L2c+CiAgICAgIDwvZz4KICAgICAgPGcKICAgICAgICAgaWQ9InRleHRfMTAiPgogICAgICAgIDwhLS0gMyAtLT4KICAgICAgICA8ZwogICAgICAgICAgIHN0eWxlPSJmaWxsOiM1ODZlNzUiCiAgICAgICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMC4xLDAsMCwtMC4xLDI0My4xNiwxMzUuNDA1OTMpIgogICAgICAgICAgIGlkPSJnMTQ5Ij4KICAgICAgICAgIDxkZWZzCiAgICAgICAgICAgICBpZD0iZGVmczE0NSI+CiAgICAgICAgICAgIDxwYXRoCiAgICAgICAgICAgICAgIGQ9Im0gMjU5NywyNTE2IHEgNDUzLC05NyA3MDcsLTQwNCAyNTUsLTMwNiAyNTUsLTc1NiAwLC02OTAgLTQ3NSwtMTA2OSAtNDc1LC0zNzggLTEzNTAsLTM3OCAtMjkzLDAgLTYwNCw1OCAtMzExLDU4IC02NDIsMTc0IHYgNjA5IHEgMjYyLC0xNTMgNTc0LC0yMzEgMzEzLC03OCA2NTQsLTc4IDU5MywwIDkwNCwyMzQgMzExLDIzNCAzMTEsNjgxIDAsNDEzIC0yODksNjQ1IC0yODksMjMzIC04MDQsMjMzIGggLTU0NCB2IDUxOSBoIDU2OSBxIDQ2NSwwIDcxMiwxODYgMjQ3LDE4NiAyNDcsNTM2IDAsMzU5IC0yNTUsNTUxIC0yNTQsMTkzIC03MjksMTkzIC0yNjAsMCAtNTU3LC01NyAtMjk3LC01NiAtNjUzLC0xNzQgdiA1NjIgcSAzNjAsMTAwIDY3NCwxNTAgMzE0LDUwIDU5Miw1MCA3MTksMCAxMTM3LC0zMjcgNDE5LC0zMjYgNDE5LC04ODIgMCwtMzg4IC0yMjIsLTY1NSAtMjIyLC0yNjcgLTYzMSwtMzcwIHoiCiAgICAgICAgICAgICAgIGlkPSJEZWphVnVTYW5zLTMzIgogICAgICAgICAgICAgICB0cmFuc2Zvcm09InNjYWxlKDAuMDE1NjI1KSIgLz4KICAgICAgICAgIDwvZGVmcz4KICAgICAgICAgIDx1c2UKICAgICAgICAgICAgIHhsaW5rOmhyZWY9IiNEZWphVnVTYW5zLTMzIgogICAgICAgICAgICAgaWQ9InVzZTE0NyIKICAgICAgICAgICAgIHg9IjAiCiAgICAgICAgICAgICB5PSIwIgogICAgICAgICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICAgICAgICBoZWlnaHQ9IjEwMCUiIC8+CiAgICAgICAgPC9nPgogICAgICA8L2c+CiAgICA8L2c+CiAgICA8ZwogICAgICAgaWQ9Inl0aWNrXzYiPgogICAgICA8ZwogICAgICAgICBpZD0ibGluZTJkXzExIj4KICAgICAgICA8ZwogICAgICAgICAgIGlkPSJnMTU1Ij4KICAgICAgICAgIDx1c2UKICAgICAgICAgICAgIHN0eWxlPSJmaWxsOiM1ODZlNzU7c3Ryb2tlOiM1ODZlNzU7c3Ryb2tlLXdpZHRoOjAuOCIKICAgICAgICAgICAgIHg9IjIzNi4xNiIKICAgICAgICAgICAgIHhsaW5rOmhyZWY9IiNtN2U2OTEwYTc4MCIKICAgICAgICAgICAgIHk9Ijg4LjY4NTQxNyIKICAgICAgICAgICAgIGlkPSJ1c2UxNTMiCiAgICAgICAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgICAgICAgIGhlaWdodD0iMTAwJSIgLz4KICAgICAgICA8L2c+CiAgICAgIDwvZz4KICAgICAgPGcKICAgICAgICAgaWQ9InRleHRfMTEiPgogICAgICAgIDwhLS0gNCAtLT4KICAgICAgICA8ZwogICAgICAgICAgIHN0eWxlPSJmaWxsOiM1ODZlNzUiCiAgICAgICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMC4xLDAsMCwtMC4xLDI0My4xNiw5Mi40ODQ2MzgpIgogICAgICAgICAgIGlkPSJnMTYwIj4KICAgICAgICAgIDx1c2UKICAgICAgICAgICAgIHhsaW5rOmhyZWY9IiNEZWphVnVTYW5zLTM0IgogICAgICAgICAgICAgaWQ9InVzZTE1OCIKICAgICAgICAgICAgIHg9IjAiCiAgICAgICAgICAgICB5PSIwIgogICAgICAgICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICAgICAgICBoZWlnaHQ9IjEwMCUiIC8+CiAgICAgICAgPC9nPgogICAgICA8L2c+CiAgICA8L2c+CiAgICA8ZwogICAgICAgaWQ9Inl0aWNrXzciPgogICAgICA8ZwogICAgICAgICBpZD0ibGluZTJkXzEyIj4KICAgICAgICA8ZwogICAgICAgICAgIGlkPSJnMTY2Ij4KICAgICAgICAgIDx1c2UKICAgICAgICAgICAgIHN0eWxlPSJmaWxsOiM1ODZlNzU7c3Ryb2tlOiM1ODZlNzU7c3Ryb2tlLXdpZHRoOjAuOCIKICAgICAgICAgICAgIHg9IjIzNi4xNiIKICAgICAgICAgICAgIHhsaW5rOmhyZWY9IiNtN2U2OTEwYTc4MCIKICAgICAgICAgICAgIHk9IjQ1Ljc2NDEzIgogICAgICAgICAgICAgaWQ9InVzZTE2NCIKICAgICAgICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgICAgICAgaGVpZ2h0PSIxMDAlIiAvPgogICAgICAgIDwvZz4KICAgICAgPC9nPgogICAgICA8ZwogICAgICAgICBpZD0idGV4dF8xMiI+CiAgICAgICAgPCEtLSA1IC0tPgogICAgICAgIDxnCiAgICAgICAgICAgc3R5bGU9ImZpbGw6IzU4NmU3NSIKICAgICAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgwLjEsMCwwLC0wLjEsMjQzLjE2LDQ5LjU2MzM0OCkiCiAgICAgICAgICAgaWQ9ImcxNzQiPgogICAgICAgICAgPGRlZnMKICAgICAgICAgICAgIGlkPSJkZWZzMTcwIj4KICAgICAgICAgICAgPHBhdGgKICAgICAgICAgICAgICAgZD0iTSA2OTEsNDY2NiBIIDMxNjkgViA0MTM0IEggMTI2OSBWIDI5OTEgcSAxMzcsNDcgMjc0LDcwIDEzOCwyMyAyNzYsMjMgNzgxLDAgMTIzNywtNDI4IDQ1NywtNDI4IDQ1NywtMTE1OSBRIDM1MTMsNzQ0IDMwNDQsMzI2IDI1NzUsLTkxIDE3MjIsLTkxIDE0MjgsLTkxIDExMjMsLTQxIDgxOSw5IDQ5NCwxMDkgdiA2MzUgcSAyODEsLTE1MyA1ODEsLTIyOCAzMDAsLTc1IDYzNCwtNzUgNTQxLDAgODU2LDI4NCAzMTYsMjg0IDMxNiw3NzIgMCw0ODcgLTMxNiw3NzEgLTMxNSwyODUgLTg1NiwyODUgLTI1MywwIC01MDUsLTU2IC0yNTEsLTU2IC01MTMsLTE3NSB6IgogICAgICAgICAgICAgICBpZD0iRGVqYVZ1U2Fucy0zNSIKICAgICAgICAgICAgICAgdHJhbnNmb3JtPSJzY2FsZSgwLjAxNTYyNSkiIC8+CiAgICAgICAgICA8L2RlZnM+CiAgICAgICAgICA8dXNlCiAgICAgICAgICAgICB4bGluazpocmVmPSIjRGVqYVZ1U2Fucy0zNSIKICAgICAgICAgICAgIGlkPSJ1c2UxNzIiCiAgICAgICAgICAgICB4PSIwIgogICAgICAgICAgICAgeT0iMCIKICAgICAgICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgICAgICAgaGVpZ2h0PSIxMDAlIiAvPgogICAgICAgIDwvZz4KICAgICAgPC9nPgogICAgPC9nPgogICAgPHBhdGgKICAgICAgIGNsaXAtcGF0aD0idXJsKCNwYWZhYTY2YTQ0OSkiCiAgICAgICBkPSJNIDYxLjEwMTE3NiwyNjAuMzcwNTggSCAyMzYuMTYgTCA0MTAuNTE4NTksNDYuNjIyNTU1IHYgMCIKICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiNiNTg5MDA7c3Ryb2tlLXdpZHRoOjI7c3Ryb2tlLWxpbmVjYXA6c3F1YXJlIgogICAgICAgaWQ9InBhdGgxNzkiIC8+CiAgICA8cGF0aAogICAgICAgY2xpcC1wYXRoPSJ1cmwoI3BhZmFhNjZhNDQ5KSIKICAgICAgIGQ9Ik0gNjEuMTAxMTc2LDMwMy4yOTE4NyAyMzYuMTYsMjYwLjM3MDU4IDQxMC41MTg1OSw0Ni42MjI1NTUgdiAwIgogICAgICAgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6IzI2OGJkMjtzdHJva2Utd2lkdGg6MjtzdHJva2UtZGFzaGFycmF5OjcuNCwgMy4yO3N0cm9rZS1kYXNob2Zmc2V0OjAiCiAgICAgICBpZD0icGF0aDE4MiIgLz4KICAgIDxwYXRoCiAgICAgICBjbGlwLXBhdGg9InVybCgjcGFmYWE2NmE0NDkpIgogICAgICAgZD0ibSA2MS4xMDExNzYsMjgxLjY4NjYyIDM1LjcxMiwtMC4yNTY0IDIzLjEwNzc2NCwtMC4zNzQ4NiAxNi44MDU2NSwtMC40Nzc5OSAxNC4wMDQ3LC0wLjYxNjY3IDExLjIwMzc3LC0wLjcwNTQzIDkuODAzMjksLTAuODMyMzcgOC40MDI4MywtMC45MjQ1IDcuNzAyNTgsLTEuMDY2MjEgNy4wMDIzNiwtMS4xOTUzNiA2LjMwMjExLC0xLjMwMDUzIDUuNjAxODksLTEuMzY5ODYgNS42MDE4OCwtMS42MDc1NCA0LjkwMTY1LC0xLjYzMzgzIDQuOTAxNjQsLTEuODc5MzUgNC4yMDE0MiwtMS44MzQxIDQuMjAxNDEsLTIuMDY3OTUgNC4yMDE0MSwtMi4zMzE2MSAxLjQwMDQ3LC0wLjg0MTQ4IDE3NC4zNTg1OSwtMjEzLjc0ODAyNSB2IDAiCiAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojZGMzMjJmO3N0cm9rZS13aWR0aDoyO3N0cm9rZS1kYXNoYXJyYXk6MiwgMy4zO3N0cm9rZS1kYXNob2Zmc2V0OjAiCiAgICAgICBpZD0icGF0aDE4NSIgLz4KICAgIDxwYXRoCiAgICAgICBjbGlwLXBhdGg9InVybCgjcGFmYWE2NmE0NDkpIgogICAgICAgZD0ibSA2MS4xMDExNzYsMjYwLjA4MjM1IDI2LjYwODk0MiwtMC4zMjU3NSAxOS42MDY1OTIsLTAuNDU1MTkgMTUuNDA1MTcsLTAuNTc5NzEgMTIuNjA0MjQsLTAuNjk1MyAxMC41MDM1MywtMC43OTA4MSA5LjgwMzI5LC0wLjk2NTk0IDguNDAyODIsLTEuMDQ3OTkgNy43MDI1OSwtMS4xNzc2OCA3LjAwMjM2LC0xLjI4MzAxIDcuMDAyMzUsLTEuNTE2NzcgNi4zMDIxMiwtMS41OTE1MyA2LjMwMjExLC0xLjgzMDg5IDUuNjAxODksLTEuODQ3NiA1LjYwMTg4LC0yLjA3MTM3IDUuNjAxODgsLTIuMzA5NzggNS42MDE4OCwtMi41NjA5NiA1LjYwMTg5LC0yLjgyMjU0IDUuNjAxODgsLTMuMDkxNjYgNS42MDE4OCwtMy4zNjUwNyA1LjYwMTg4LC0zLjYzOTM3IDUuNjAxODksLTMuOTExMDYgNS42MDE4OCwtNC4xNzY3OCA1LjYwMTg4LC00LjQzMzUgNi4zMDIxMiwtNS4yNzk5NCA2LjMwMjExLC01LjU3MDI4IDcuMDAyMzYsLTYuNTAyNzcgNy4wMDIzNSwtNi44MDE1NiA3LjcwMjU5LC03Ljc4NzYxIDguNDAyODIsLTguODEyNDYgOS4xMDMwNiwtOS44NjE1NiAxMC41MDM1MywtMTEuNzEwNDMgMTEuOTA0LC0xMy42MDgyOCAxNC4wMDQ3MSwtMTYuMzQ5NiAxNy41MDU4OCwtMjAuNzk0MDUgMjIuNDA3NTMsLTI2Ljk3NzI5OCAyMi40MDc1MywtMjcuMjA3NzMxIHYgMCIKICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiNkMzM2ODI7c3Ryb2tlLXdpZHRoOjI7c3Ryb2tlLWRhc2hhcnJheToxMi44LCAzLjIsIDIsIDMuMjtzdHJva2UtZGFzaG9mZnNldDowIgogICAgICAgaWQ9InBhdGgxODgiIC8+CiAgICA8cGF0aAogICAgICAgZD0iTSAyMzYuMTYsMzA3LjU4NCBWIDQxLjQ3MiIKICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiM1ODZlNzU7c3Ryb2tlLXdpZHRoOjAuODtzdHJva2UtbGluZWNhcDpzcXVhcmU7c3Ryb2tlLWxpbmVqb2luOm1pdGVyIgogICAgICAgaWQ9InBhdGgxOTEiIC8+CiAgICA8cGF0aAogICAgICAgZD0iTSAyMzYuMTYsMzA3LjU4NCBWIDQxLjQ3MiIKICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiM1ODZlNzU7c3Ryb2tlLXdpZHRoOjAuODtzdHJva2UtbGluZWNhcDpzcXVhcmU7c3Ryb2tlLWxpbmVqb2luOm1pdGVyIgogICAgICAgaWQ9InBhdGgxOTQiIC8+CiAgICA8cGF0aAogICAgICAgZD0iTSA1Ny42LDI2MC4zNzA1OCBIIDQxNC43MiIKICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiM1ODZlNzU7c3Ryb2tlLXdpZHRoOjAuODtzdHJva2UtbGluZWNhcDpzcXVhcmU7c3Ryb2tlLWxpbmVqb2luOm1pdGVyIgogICAgICAgaWQ9InBhdGgxOTciIC8+CiAgICA8cGF0aAogICAgICAgZD0iTSA1Ny42LDI2MC4zNzA1OCBIIDQxNC43MiIKICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiM1ODZlNzU7c3Ryb2tlLXdpZHRoOjAuODtzdHJva2UtbGluZWNhcDpzcXVhcmU7c3Ryb2tlLWxpbmVqb2luOm1pdGVyIgogICAgICAgaWQ9InBhdGgyMDAiIC8+CiAgICA8ZwogICAgICAgaWQ9ImxpbmUyZF8xNyI+CiAgICAgIDxwYXRoCiAgICAgICAgIGQ9Im0gNzEuMSw2MC4yOTcgaCAzMCIKICAgICAgICAgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6I2I1ODkwMDtzdHJva2Utd2lkdGg6MjtzdHJva2UtbGluZWNhcDpzcXVhcmUiCiAgICAgICAgIGlkPSJwYXRoMjA2IiAvPgogICAgPC9nPgogICAgPGcKICAgICAgIGlkPSJ0ZXh0XzEzIj4KICAgICAgPCEtLSBSZUxVIC0tPgogICAgICA8ZwogICAgICAgICBzdHlsZT0iZmlsbDojNTg2ZTc1IgogICAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgwLjE1LDAsMCwtMC4xNSwxMTMuMSw2NS41NDcpIgogICAgICAgICBpZD0iZzIyNCI+CiAgICAgICAgPGRlZnMKICAgICAgICAgICBpZD0iZGVmczIxNCI+CiAgICAgICAgICA8cGF0aAogICAgICAgICAgICAgZD0ibSA0MDc3LC0xMzQgcSAtMTc5LDAgLTMzOSwyOSAtMTYwLDI4IC0yOTUsMTA1IC0xMzQsNzcgLTI0OSwyMTEgLTE1NCwxOTIgLTI5NSwzNjggLTE0MSwxNzYgLTI5OCw0MDYgLTE1NiwyMzEgLTM4MCw1ODkgLTk2LDE2MCAtMjc1LDI1MCAtMTQxLDcwIC0yNzksOTkgLTEzNywyOSAtMjI3LDM1IC01MSw3IC03NCwtMzIgLTIyLC0zOCAtMjIsLTk2IFYgNzA0IHEgMCwtMjA1IDk2LC0zNTYgOTYsLTE1MCAzMzMsLTE5NCAxMDksLTIwIDE2MCwtNDYgNTEsLTI1IDUxLC03MCAwLC0zOCAtNTEsLTU0IC01MSwtMTYgLTEzNSwtMTYgLTE3MiwwIC0yNjUsMTMgLTkzLDEzIC0xNjcsMjIgLTczLDEwIC0xOTUsMTAgUSAxMDExLDEzIDg4NiwzIDc2MiwtNiA2MzcsLTE5IDUxMiwtMzIgMzM5LC0zMiBxIC04MywwIC0xMzQsMTYgLTUxLDE2IC01MSw1NCAwLDc3IDIxMSwxMTYgMjQzLDQ0IDM1NSwxNDYgMTEyLDEwMyAxMTIsMzQwIHYgMjcyNiBxIDAsMjQ0IC0yMywzNjggLTIyLDEyNSAtMTAyLDE3NiAtODAsNTIgLTI2NSw3MSAtMTA5LDEzIC0xNjEsNDggLTUxLDM1IC01MSw4MCAwLDM4IDUxLDU0IDUyLDE2IDEzNSwxNiAxNzMsMCAyNTksMCA4NywwIDE2MywtMyA3NywtMyAyMDUsLTMgMTIyLDAgMjE4LDkgOTYsMTAgMjE0LDE2IDExOSw3IDMwNCw3IDcwNCwwIDEwNzIsLTI2MyAzNjgsLTI2MiAzNjgsLTc4NyAwLC0yODggLTExNSwtNDk2IC0xMTUsLTIwOCAtMjg4LC0zNDkgLTE3MywtMTQwIC0zNTIsLTIzMCAtMjYsLTYgLTIzLC0yOSA0LC0yMiAyMywtNTQgMTk4LC0zMDEgMzgwLC01NzAgMTgzLC0yNjkgNDAwLC01MjUgMjE4LC0yNTYgNTE5LC01MzEgMTY3LC0xNDcgMzM5LC0xNzkgMTczLC0zMiAzOTcsLTMyIDk2LDAgOTYsLTcwIDAsLTk2IC05NiwtMTQ0IC05NiwtNDggLTIxOCwtNjQgLTEyMSwtMTYgLTIwNCwtMTYgeiBNIDE2ODMsMjEwNiBxIDI5NSwwIDUwOSwxMzQgMjE0LDEzNCAzMzIsMzUyIDExOSwyMTggMTE5LDQ2MSAwLDI2MiAtNjcsNDc5IC02NywyMTggLTI2OSwzNDkgLTIwMSwxMzIgLTYwNSwxMzIgLTIwNCwwIC0yNjgsLTEzMiAtNjQsLTEzMSAtNzcsLTQ2MyAtNywtMTYwIC0xMCwtNDMyIC0zLC0yNzIgLTMsLTY1NiAwLC0xNjAgODksLTE5MiA5MCwtMzIgMjUwLC0zMiB6IgogICAgICAgICAgICAgaWQ9IkVCR2FyYW1vbmQtUmVndWxhci01MiIKICAgICAgICAgICAgIHRyYW5zZm9ybT0ic2NhbGUoMC4wMTU2MjUpIiAvPgogICAgICAgICAgPHBhdGgKICAgICAgICAgICAgIGQ9Ik0gMTM2MywtOTYgUSAxMDExLC05NiA3NDgsNzcgNDg2LDI1MCAzMzksNTY2IDE5Miw4ODMgMTkyLDEyOTkgcSAwLDM3MSAxNjksNjc1IDE3MCwzMDQgNDUxLDQ5MCAyODIsMTg2IDYxNSwxODYgMjU2LDAgNDU0LC0xMDMgMTk5LC0xMDIgMzExLC0yODUgMTEyLC0xODIgMTEyLC00MTkgMCwtMTk4IC0xOTIsLTE5OCBIIDc2MiBxIC05MCwwIC0xMjUsLTQ4IC0zNSwtNDggLTM1LC0xODkgMCwtMzA3IDEzNCwtNTYwIDEzNCwtMjUzIDM1OCwtNDA0IDIyNCwtMTUwIDQ5MywtMTUwIDE5MiwwIDM0OSw3NCAxNTcsNzQgMjc4LDIxNCAyNiwzMiAzOSw0MiAxMywxMCAzMiwxMCA1MSwwIDUxLC02NCAwLC0xMjIgLTExNSwtMjY5IFEgMjEyNSwxNzkgMTk5MCw4OSAxODU2LDAgMTY5NiwtNDggMTUzNiwtOTYgMTM2MywtOTYgWiBNIDc3NCwxODQzIGggNTgzIHEgMTUzLDAgMjYyLDYgMTA5LDcgMjExLDI2IDMyLDcgNDIsNDIgMTAsMzUgMTAsOTkgMCwxODYgLTE2NCwzMTcgLTE2MywxMzEgLTM4NywxMzEgLTE0NywwIC0yOTQsLTg3IC0xNDcsLTg2IC0yNDMsLTIxNCAtOTYsLTEyOCAtOTYsLTI1NiAwLC02NCA3NiwtNjQgeiIKICAgICAgICAgICAgIGlkPSJFQkdhcmFtb25kLVJlZ3VsYXItNjUiCiAgICAgICAgICAgICB0cmFuc2Zvcm09InNjYWxlKDAuMDE1NjI1KSIgLz4KICAgICAgICAgIDxwYXRoCiAgICAgICAgICAgICBkPSJtIDM1MiwtMzIgcSAtODMsMCAtMTMxLDIzIC00OCwyMiAtNDgsNTQgMCw1NyA2MCw3OSA2MSwyMyA4MSwzMCAyNDksNTEgMzgzLDE1MCAxMzUsOTkgMTM1LDMxMCB2IDI5NzAgcSAwLDE1NCAtMzIsMjI3IC0zMiw3NCAtMTE1LDEwOSAtODMsMzUgLTI0Myw2MSAtMjEyLDM4IC0yMTIsMTI4IDAsMzggNTEsNTQgNTIsMTYgMTM1LDE2IDE3MywwIDI3OCwtNyAxMDYsLTYgMjAyLC05IDk2LC0zIDIzNywtMyAxNjAsMCAyNzUsMyAxMTUsMyAyMzYsOSAxMjIsNyAyOTUsNyA4MywwIDEzNCwtMTYgNTIsLTE2IDUyLC01NCAwLC00NSAtNTIsLTc3IC01MSwtMzIgLTE1OSwtNTEgLTIzNywtNDUgLTQwNCwtMTA2IC0xNjYsLTYxIC0xNjYsLTI0NiBWIDYxNCBxIDAsLTE5OCA4OSwtMjk0IDkwLC05NiA0MDQsLTk2IGggNzkzIHEgMTczLDAgMzA0LDU0IDEzMiw1NSAxOTYsMTEyIDEyOCwxMDkgMTg4LDE5NSA2MSw4NyAxNDQsMjYwIDEzLDM4IDU0LDExNSA0Miw3NyA4Nyw3NyAzOSwwIDU4LC0zOSAxOSwtMzggMTksLTc2IDAsLTcgLTMsLTE3IC0zLC05IC0zLC0xNSAtNDUsLTE2NyAtODEsLTMwMiAtMzUsLTEzNCAtNTcsLTI1NiAtMjIsLTEyMSAtMzUsLTI1NSAtNywtNDUgLTIzLC03NyAtMTYsLTMyIC02NywtMzIgLTMyMCwwIC02MTUsNyAtMjk0LDYgLTU2Niw5IC0yNzIsMyAtNTIyLDEwIFEgMTQ1OSwwIDEyMTYsMCAxMDU2LDAgODU0LC02IDY1MywtMTMgNTAyLC0yMiAzNTIsLTMyIDM1MiwtMzIgWiIKICAgICAgICAgICAgIGlkPSJFQkdhcmFtb25kLVJlZ3VsYXItNGMiCiAgICAgICAgICAgICB0cmFuc2Zvcm09InNjYWxlKDAuMDE1NjI1KSIgLz4KICAgICAgICAgIDxwYXRoCiAgICAgICAgICAgICBkPSJtIDIzODEsLTkwIHEgLTU3MCwwIC05NTQsMjAyIC0zODQsMjAyIC01NzYsNTcwIC0xOTIsMzY4IC0xOTIsODU0IHYgMTk2NSBxIDAsMjMwIC05MywzMzUgLTkyLDEwNiAtMjAxLDEzMiAtMjExLDU4IC0yMTEsMTQxIDAsMzggNTEsNTQgNTEsMTYgMTM0LDE2IDE0NywwIDI5MSwtMTAgMTQ0LC05IDMyNCwtOSAxNDcsMCAyNzgsNiAxMzEsNyAyMzQsNyA4MywwIDEzNCwtMTYgNTEsLTE2IDUxLC01NSAwLC00NCAtNTEsLTcwIC01MSwtMjYgLTE2MCwtNTggLTc3LC0yNSAtMTczLC0xNDcgLTk2LC0xMjEgLTk2LC0zMTMgViAxNzE1IHEgMCwtNTEyIDE3MywtODQyIDE3MywtMzI5IDQ3NywtNDg2IDMwNCwtMTU3IDY5NCwtMTU3IDY1OSwwIDk2Niw0NTggMzA4LDQ1OCAzMDgsMTIwNiAwLDE0MSAtNCwzNzEgLTMsMjMxIC05LDQ5NiAtNiwyNjYgLTEzLDUwOSAwLDE2NyAtMjksMzE0IC0yOCwxNDcgLTg2LDI1MiAtNTgsMTA2IC0xNDcsMTMyIC02NCwxOSAtMTM4LDUxIC03MywzMiAtNzMsNzcgMCwzOCA1MSw1NCA1MSwxNiAxMzQsMTYgMTQ3LDAgMjQzLC0zIDk2LC0zIDIzNywtMyAxMDMsMCAxOTIsMyA5MCwzIDE3Myw5IDgzLDcgMTU0LDcgODMsMCAxMzQsLTE2IDUxLC0xNiA1MSwtNTQgMCwtODMgLTIxMSwtMTI4IC0xNjYsLTMyIC0yMzcsLTE2MCAtNzAsLTEyOCAtODMsLTMyMCAtMzIsLTU1MSAtNDIsLTEwMDUgLTksLTQ1NCAtMjIsLTg5NiBRIDQwNTEsMTEwNyAzODI3LDcyMyAzNjAzLDMzOSAzMjI4LDEyNCAyODU0LC05MCAyMzgxLC05MCBaIgogICAgICAgICAgICAgaWQ9IkVCR2FyYW1vbmQtUmVndWxhci01NSIKICAgICAgICAgICAgIHRyYW5zZm9ybT0ic2NhbGUoMC4wMTU2MjUpIiAvPgogICAgICAgIDwvZGVmcz4KICAgICAgICA8dXNlCiAgICAgICAgICAgeGxpbms6aHJlZj0iI0VCR2FyYW1vbmQtUmVndWxhci01MiIKICAgICAgICAgICBpZD0idXNlMjE2IgogICAgICAgICAgIHg9IjAiCiAgICAgICAgICAgeT0iMCIKICAgICAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgICAgICBoZWlnaHQ9IjEwMCUiIC8+CiAgICAgICAgPHVzZQogICAgICAgICAgIHg9IjcxLjI5OTk4OCIKICAgICAgICAgICB4bGluazpocmVmPSIjRUJHYXJhbW9uZC1SZWd1bGFyLTY1IgogICAgICAgICAgIGlkPSJ1c2UyMTgiCiAgICAgICAgICAgeT0iMCIKICAgICAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgICAgICBoZWlnaHQ9IjEwMCUiIC8+CiAgICAgICAgPHVzZQogICAgICAgICAgIHg9IjExMC4yOTk5NyIKICAgICAgICAgICB4bGluazpocmVmPSIjRUJHYXJhbW9uZC1SZWd1bGFyLTRjIgogICAgICAgICAgIGlkPSJ1c2UyMjAiCiAgICAgICAgICAgeT0iMCIKICAgICAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgICAgICBoZWlnaHQ9IjEwMCUiIC8+CiAgICAgICAgPHVzZQogICAgICAgICAgIHg9IjE2OC42OTk5NyIKICAgICAgICAgICB4bGluazpocmVmPSIjRUJHYXJhbW9uZC1SZWd1bGFyLTU1IgogICAgICAgICAgIGlkPSJ1c2UyMjIiCiAgICAgICAgICAgeT0iMCIKICAgICAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgICAgICBoZWlnaHQ9IjEwMCUiIC8+CiAgICAgIDwvZz4KICAgIDwvZz4KICAgIDxnCiAgICAgICBpZD0ibGluZTJkXzE5Ij4KICAgICAgPHBhdGgKICAgICAgICAgZD0ibSA3MS4xLDgyLjY0NyBoIDMwIgogICAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojMjY4YmQyO3N0cm9rZS13aWR0aDoyO3N0cm9rZS1kYXNoYXJyYXk6Ny40LCAzLjI7c3Ryb2tlLWRhc2hvZmZzZXQ6MCIKICAgICAgICAgaWQ9InBhdGgyMjciIC8+CiAgICA8L2c+CiAgICA8ZwogICAgICAgaWQ9InRleHRfMTQiPgogICAgICA8IS0tIExlYWt5UmVMVSAtLT4KICAgICAgPGcKICAgICAgICAgc3R5bGU9ImZpbGw6IzU4NmU3NSIKICAgICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMC4xNSwwLDAsLTAuMTUsMTEzLjEsODcuODk3KSIKICAgICAgICAgaWQ9ImcyNTQiPgogICAgICAgIDxkZWZzCiAgICAgICAgICAgaWQ9ImRlZnMyMzQiPgogICAgICAgICAgPHBhdGgKICAgICAgICAgICAgIGQ9Ik0gNzQ5LC05MCBRIDYzNCwtOTAgNTE1LDAgMzk3LDkwIDMxNywyMTggcSAtODAsMTI4IC04MCwyNDMgMCwyMDUgMTA4LDMyMCAxMDksMTE1IDM0NiwyMTEgbCA2NTMsMjY5IHEgMTI4LDUxIDE1MCw4OSAyMywzOSAyOSwxNjcgbCAxMyw0MDkgcSA2LDE2NyAtOTMsMjg4IC05OSwxMjIgLTI4NSwxMjIgLTk2LDAgLTE5MiwtMzIgLTk2LC0zMiAtMTYwLC04MyAtMzgsLTI2IC01MSwtNzcgLTEzLC01MSAtMTMsLTEwOSAwLC0yNSAzLC01NyA0LC0zMiA0LC01OCAwLC0zMiAtODAsLTg3IC04MCwtNTQgLTE4MCwtOTYgLTk5LC00MSAtMTYzLC00MSAtMzIsMCAtNTEsMTYgLTE5LDE2IC0xOSw0MiAwLDEwMiA2NywyMjAgNjcsMTE5IDE4OSwyMjEgMTQ3LDEzNSAzMjAsMjM3IDE3MywxMDIgMzM5LDE2MCAxNjcsNTggMjk1LDU4IDIzMCwwIDM4MCwtMTY0IDE1MSwtMTYzIDE0NCwtNDA2IEwgMTk1OCw1NDQgcSAtNiwtMTM0IDYxLC0yMTggNjcsLTgzIDE3MCwtODMgMTYwLDAgMjM3LDcxIDMyLDMyIDUxLDMyIDMyLDAgNTEsLTIwIDE5LC0xOSAxOSwtNTEgMCwtNzAgLTcwLC0xNDEgLTEwMywtMTAyIC0yMjEsLTE2MyAtMTE4LC02MSAtMjIxLC02MSAtMjk0LDAgLTQ2NywzMzMgaCAtMTkgUSAxMzM4LDcwIDExNDYsLTEwIDk1NCwtOTAgNzQ5LC05MCBaIG0gMzAxLDMwOCBxIDEyOCwwIDIxNyw0MSA5MCw0MiAxNjAsMTEyIDMyLDMyIDU0LDg2IDIzLDU1IDI5LDE3NyBsIDEzLDMxMyBxIDcsNzEgLTYsMTAzIC0xMywzMiAtNTEsMzIgLTEzLDAgLTQ1LC03IC0zMiwtNiAtODMsLTI1IFEgOTk4LDkyOCA4NjcsNzk3IDczNiw2NjYgNzM2LDU1NyBxIDAsLTE2NyA5OSwtMjUzIDk5LC04NiAyMTUsLTg2IHoiCiAgICAgICAgICAgICBpZD0iRUJHYXJhbW9uZC1SZWd1bGFyLTYxIgogICAgICAgICAgICAgdHJhbnNmb3JtPSJzY2FsZSgwLjAxNTYyNSkiIC8+CiAgICAgICAgICA8cGF0aAogICAgICAgICAgICAgZD0ibSAyNjksLTE5IHEgLTE0NywwIC0xNDcsNzAgMCw1MSA0OCw2NyA0OCwxNiA5OSwzNiA5NiwzMiAxODUsODMgOTAsNTEgOTAsMTc5IHYgMzIwNiBxIDAsMjI0IC02NCwzMjYgLTY0LDEwMyAtMjI0LDE0MiAtNTgsMTIgLTU4LDgzIDAsNjQgNTIsNzcgMTY2LDM4IDI4Nyw3OSAxMjIsNDIgMjIxLDgzIDEwMCw0MiAxOTYsODEgMzgsMTkgNTcsMTkgMTksMCAyOSwtMTMgMTAsLTEzIDEwLC00NSAwLC02NCAtMjksLTI1NiAtMjksLTE5MiAtMjksLTYwMSBWIDE0OTggcSAwLC01OCAzMiwtNTggMzgsMCA5OSwzMiA2MSwzMiAxMzEsOTYgMjYzLDIyNCA0MzksNDA2IDE3NiwxODMgMjQwLDI1MyAzMiwzOSA0NCw2MSAxMywyMiAxMywzNSAwLDMyIC01NCw1NyAtNTQsMjYgLTExMiwzOSAtNzcsMTkgLTc3LDY0IDAsMzIgMzgsNTQgMzksMjMgMTAzLDIzIGggMzE0IHEgMTAyLDAgMjE0LDE5IDExMiwxOSAyMTEsMzggOTksMjAgMTU3LDIwIDkwLDAgOTAsLTY0IDAsLTM5IC00NSwtNjggLTQ1LC0yOCAtMTE1LC00NyAtMTIyLC0zMiAtMjI4LC05MCAtMTA1LC01OCAtMTk1LC0xMDkgLTM4LC0yNSAtMTc2LC0xMzcgLTEzNywtMTEyIC0zMTMsLTI2MCAtMTc2LC0xNDcgLTMzMCwtMjgxIC0zOCwtMzkgLTM4LC02NCAwLC03IDYsLTIwIDYsLTEyIDEzLC0yNSAxNjYsLTIwNSAzNTgsLTQxNiAxOTIsLTIxMSAzNTUsLTM3MSAxNjQsLTE2MCAyMjgsLTIyNCAxMDgsLTEwMyAyNDYsLTE4MyAxMzgsLTgwIDIzNCwtMTEyIDcwLC0yNSAxMzEsLTQ1IDYxLC0xOSA2MSwtNzAgMCwtNzAgLTEyOCwtNzAgLTI1MCwwIC01NjEsMTAgLTMxMCw5IC02MzYsOSAtMTE1LDAgLTExNSw1OCAwLDM4IDMyLDYzIDMyLDI2IDc2LDM5IDcxLDI2IDEyMiw1OCA1MSwzMiA1MSw4OSAwLDE5IC0xMyw0MSAtMTIsMjMgLTMyLDQ5IGwgLTc3NCw4NzcgcSAtMzgsNDQgLTY0LDQ0IC0zMiwwIC0zMiwtNDQgLTYsLTkwIC02LC0xOTYgMCwtMTA1IDAsLTIxNCAwLC0xMDkgMCwtMjI0IDAsLTExNSA2LC0yMjQgMCwtMTI4IDY0LC0xNzkgNjQsLTUxIDE2MCwtODMgNTEsLTIwIDk5LC0zNiA0OCwtMTYgNDgsLTY3IDAsLTQ1IC02MSwtNTcgLTYwLC0xMyAtODYsLTEzIC0xMjIsMCAtMTgwLDEwIFEgOTc5LDAgOTMxLDYgODgzLDEzIDc2OCwxMyA2NTksMTMgNTk1LDYgNTMxLDAgNDY0LC05IDM5NywtMTkgMjY5LC0xOSBaIgogICAgICAgICAgICAgaWQ9IkVCR2FyYW1vbmQtUmVndWxhci02YiIKICAgICAgICAgICAgIHRyYW5zZm9ybT0ic2NhbGUoMC4wMTU2MjUpIiAvPgogICAgICAgICAgPHBhdGgKICAgICAgICAgICAgIGQ9Im0gNDEwLC0xODI0IHEgLTEyMiwwIC0yMjUsNjEgLTEwMiw2MSAtMTAyLDIwMSAwLDExNiA1NCwyMDIgNTUsODYgMTU3LDg2IDcxLDAgMTM4LC0xOSA2NywtMTkgMTE4LC0xOSAzOSwwIDY3LDE2IDI5LDE2IDU1LDU0IDcwLDExNiAxNjMsMjg5IDkzLDE3MiAxOTIsMzkwIDk5LDIxNyAxODksNDYxIDE5LDU3IDE5LDE0NyAwLDUxIC03LDk5IC02LDQ4IC0xOCw4NiBMIDQ2NywyMTA2IHEgLTQ1LDExNSAtMTE5LDIwMSAtNzMsODcgLTE2OSwxMTIgLTUxLDE5IC05OSw0NSAtNDgsMjYgLTQ4LDcwIDAsMzkgNDgsNDggNDgsMTAgODAsMTAgMTI4LDAgMTg5LC03IDYxLC02IDExNSwtMTYgNTQsLTkgMTYzLC05IDExNSwwIDE3Myw5IDU4LDEwIDEyMiwxNiA2NCw3IDE5Miw3IDM4LDAgODMsLTE2IDQ1LC0xNiA0NSwtNTQgMCwtNDUgLTY4LC04NyAtNjcsLTQxIC0xMTgsLTU0IC02NCwtMTkgLTk2LC02NyAtMzIsLTQ4IC0zMiwtMTM4IDAsLTM4IDE5LC05MyAxOSwtNTQgMzIsLTg2IEwgMTQ5OCw3MTcgcSAxMiwtMzkgMzgsLTM5IDE5LDAgMzIsMzkgbCA0NDIsMTE3MSBxIDE5LDQ1IDM1LDExOCAxNiw3NCAxNiwxMTkgMCwxMjEgLTM2LDE2OSAtMzUsNDggLTkyLDc0IC01MSwyNiAtMTE5LDY3IC02Nyw0MiAtNjcsODcgMCwzOCA0OCw1NCA0OCwxNiA4MCwxNiA5MCwwIDE4MiwtMTYgOTMsLTE2IDI3MywtMTYgMTIxLDAgMTc1LDkgNTUsMTAgOTMsMTYgMzksNyAxMDksNyAzMiwwIDgwLC0xMCA0OCwtOSA0OCwtNDggMCwtNDQgLTQ4LC03MCAtNDgsLTI2IC05OSwtNDUgLTk2LC0yNSAtMjA1LC0xNTAgLTEwOSwtMTI1IC0xNzMsLTI3OSBMIDE0NDAsLTgzIHEgLTYsLTE5IC02NywtMTY2IC02MSwtMTQ4IC0xNTEsLTM2NSAtODksLTIxOCAtMTk1LC00NjcgLTEwNSwtMjUwIC0yMDEsLTQ4MSAtNTgsLTEyOCAtMTY3LC0xOTUgLTEwOSwtNjcgLTI0OSwtNjcgeiIKICAgICAgICAgICAgIGlkPSJFQkdhcmFtb25kLVJlZ3VsYXItNzkiCiAgICAgICAgICAgICB0cmFuc2Zvcm09InNjYWxlKDAuMDE1NjI1KSIgLz4KICAgICAgICA8L2RlZnM+CiAgICAgICAgPHVzZQogICAgICAgICAgIHhsaW5rOmhyZWY9IiNFQkdhcmFtb25kLVJlZ3VsYXItNGMiCiAgICAgICAgICAgaWQ9InVzZTIzNiIKICAgICAgICAgICB4PSIwIgogICAgICAgICAgIHk9IjAiCiAgICAgICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICAgICAgaGVpZ2h0PSIxMDAlIiAvPgogICAgICAgIDx1c2UKICAgICAgICAgICB4PSI1OC4zOTk5OTQiCiAgICAgICAgICAgeGxpbms6aHJlZj0iI0VCR2FyYW1vbmQtUmVndWxhci02NSIKICAgICAgICAgICBpZD0idXNlMjM4IgogICAgICAgICAgIHk9IjAiCiAgICAgICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICAgICAgaGVpZ2h0PSIxMDAlIiAvPgogICAgICAgIDx1c2UKICAgICAgICAgICB4PSI5Ny4zOTk5NzkiCiAgICAgICAgICAgeGxpbms6aHJlZj0iI0VCR2FyYW1vbmQtUmVndWxhci02MSIKICAgICAgICAgICBpZD0idXNlMjQwIgogICAgICAgICAgIHk9IjAiCiAgICAgICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICAgICAgaGVpZ2h0PSIxMDAlIiAvPgogICAgICAgIDx1c2UKICAgICAgICAgICB4PSIxMzcuMjk5OTciCiAgICAgICAgICAgeGxpbms6aHJlZj0iI0VCR2FyYW1vbmQtUmVndWxhci02YiIKICAgICAgICAgICBpZD0idXNlMjQyIgogICAgICAgICAgIHk9IjAiCiAgICAgICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICAgICAgaGVpZ2h0PSIxMDAlIiAvPgogICAgICAgIDx1c2UKICAgICAgICAgICB4PSIxODQuMTk5OTciCiAgICAgICAgICAgeGxpbms6aHJlZj0iI0VCR2FyYW1vbmQtUmVndWxhci03OSIKICAgICAgICAgICBpZD0idXNlMjQ0IgogICAgICAgICAgIHk9IjAiCiAgICAgICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICAgICAgaGVpZ2h0PSIxMDAlIiAvPgogICAgICAgIDx1c2UKICAgICAgICAgICB4PSIyMjcuOTk5OTUiCiAgICAgICAgICAgeGxpbms6aHJlZj0iI0VCR2FyYW1vbmQtUmVndWxhci01MiIKICAgICAgICAgICBpZD0idXNlMjQ2IgogICAgICAgICAgIHk9IjAiCiAgICAgICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICAgICAgaGVpZ2h0PSIxMDAlIiAvPgogICAgICAgIDx1c2UKICAgICAgICAgICB4PSIyOTkuMjk5OTMiCiAgICAgICAgICAgeGxpbms6aHJlZj0iI0VCR2FyYW1vbmQtUmVndWxhci02NSIKICAgICAgICAgICBpZD0idXNlMjQ4IgogICAgICAgICAgIHk9IjAiCiAgICAgICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICAgICAgaGVpZ2h0PSIxMDAlIiAvPgogICAgICAgIDx1c2UKICAgICAgICAgICB4PSIzMzguMjk5OTMiCiAgICAgICAgICAgeGxpbms6aHJlZj0iI0VCR2FyYW1vbmQtUmVndWxhci00YyIKICAgICAgICAgICBpZD0idXNlMjUwIgogICAgICAgICAgIHk9IjAiCiAgICAgICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICAgICAgaGVpZ2h0PSIxMDAlIiAvPgogICAgICAgIDx1c2UKICAgICAgICAgICB4PSIzOTYuNjk5OTIiCiAgICAgICAgICAgeGxpbms6aHJlZj0iI0VCR2FyYW1vbmQtUmVndWxhci01NSIKICAgICAgICAgICBpZD0idXNlMjUyIgogICAgICAgICAgIHk9IjAiCiAgICAgICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICAgICAgaGVpZ2h0PSIxMDAlIiAvPgogICAgICA8L2c+CiAgICA8L2c+CiAgICA8ZwogICAgICAgaWQ9ImxpbmUyZF8yMSI+CiAgICAgIDxwYXRoCiAgICAgICAgIGQ9Im0gNzEuMSwxMDQuOTk3IGggMzAiCiAgICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiNkYzMyMmY7c3Ryb2tlLXdpZHRoOjI7c3Ryb2tlLWRhc2hhcnJheToyLCAzLjM7c3Ryb2tlLWRhc2hvZmZzZXQ6MCIKICAgICAgICAgaWQ9InBhdGgyNTciIC8+CiAgICA8L2c+CiAgICA8ZwogICAgICAgaWQ9InRleHRfMTUiPgogICAgICA8IS0tIEVMVSAtLT4KICAgICAgPGcKICAgICAgICAgc3R5bGU9ImZpbGw6IzU4NmU3NSIKICAgICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMC4xNSwwLDAsLTAuMTUsMTEzLjEsMTEwLjI0NykiCiAgICAgICAgIGlkPSJnMjcwIj4KICAgICAgICA8ZGVmcwogICAgICAgICAgIGlkPSJkZWZzMjYyIj4KICAgICAgICAgIDxwYXRoCiAgICAgICAgICAgICBkPSJtIDQyMiwtMzIgcSAtODMsMCAtMTM0LDE2IC01MSwxNiAtNTEsNTQgMCw3NyAyMTEsMTE2IDI0Myw0NCAzNTgsMTQ2IDExNiwxMDMgMTE2LDMzNCB2IDI4ODAgcSAwLDIzMCAtOTMsMzI2IC05Myw5NiAtMzM2LDE0MSAtMTA5LDE5IC0xNjAsNTEgLTUxLDMyIC01MSw3NyAwLDM4IDUxLDU0IDUxLDE2IDEzNCwxNiAyNDMsMCA0MTMsLTcgMTcwLC02IDMzMywtOSAxNjMsLTMgMzg3LC0zIDIxMSwwIDQ0NCwzIDIzNCwzIDQzMywzIDIxNyw3IDM2NywxMCAxNTEsMyAxNzcsMyAzMiwwIDcwLC0xMyAzOSwtMTIgNDUsLTQ0IDMyLC0xODAgNjQsLTM1NiAzMiwtMTc2IDMyLC0zMDQgMCwtNTcgLTI5LC03NyAtMjksLTE5IC02MSwtMTkgLTMyLDAgLTQ1LDE2IC0xMiwxNiAtMjUsNDggLTMyLDEwOSAtNjQsMjA4IC0zMiwxMDAgLTc3LDE0NCAtODksMTAzIC0xOTgsMTM4IC0xMDksMzUgLTIzMSwzNSBoIC04MzggcSAtNTEsMCAtMTQxLC01OCAtODksLTU3IC04OSwtMTQ3IFYgMjM5NCBxIDAsLTU4IDM1LC0xMDAgMzUsLTQxIDgwLC00MSBoIDYzMyBxIDE4NiwwIDI1Niw2NyA3MSw2NyAxMTYsMjQ2IDM4LDE0MSAxMTUsMTQxIDI1LDAgNTQsLTI2IDI5LC0yNSAyOSwtNzYgMCwtMjYgLTMsLTExNiAtMywtODkgLTEwLC0xODUgLTYsLTk2IC02LC0xNDcgMCwtNjQgMywtMTcwIDMsLTEwNSA2LC0yMDEgNCwtOTYgNCwtMTIyIDAsLTQ1IC0xMCwtNzcgLTEwLC0zMiAtNDgsLTMyIC05NiwwIC0xNDcsMjA1IC0zOSwxNDcgLTEwMywyMTcgLTY0LDcxIC0xOTIsNzEgaCAtNTk1IHEgLTEwOSwwIC0xNjMsLTI5IC01NCwtMjkgLTU0LC0xMzcgViA2NTMgcSAwLC0yNDMgMTAyLC0zMzYgMTAyLC05MyAzMjAsLTkzIGggNDc0IHEgMjA0LDAgMzQyLDIyIDEzOCwyMyAyNDAsODcgMTAyLDcwIDE4MiwxODUgODAsMTE2IDE4MywzMDggMTksMzggNDQsNjMgMjYsMjYgNTgsMjAgMzIsLTcgNTEsLTI5IDIwLC0yMiAyMCwtNjEgMCwtNTcgLTMyLC0yMDEgLTMyLC0xNDQgLTgwLC0yOTggLTQ4LC0xNTQgLTg3LC0yNDMgLTE5LC00NSAtMzUsLTc3IC0xNiwtMzIgLTU0LC0zMiAtMzA4LDAgLTU3MCw3IC0yNjIsNiAtNDk5LDEzIFEgMTg1NiwtNiAxNjI5LDAgMTQwMiw2IDExNTgsNiAxMDE4LDYgOTE1LC0zIDgxMywtMTMgNzA0LC0yMiA1OTUsLTMyIDQyMiwtMzIgWiIKICAgICAgICAgICAgIGlkPSJFQkdhcmFtb25kLVJlZ3VsYXItNDUiCiAgICAgICAgICAgICB0cmFuc2Zvcm09InNjYWxlKDAuMDE1NjI1KSIgLz4KICAgICAgICA8L2RlZnM+CiAgICAgICAgPHVzZQogICAgICAgICAgIHhsaW5rOmhyZWY9IiNFQkdhcmFtb25kLVJlZ3VsYXItNDUiCiAgICAgICAgICAgaWQ9InVzZTI2NCIKICAgICAgICAgICB4PSIwIgogICAgICAgICAgIHk9IjAiCiAgICAgICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICAgICAgaGVpZ2h0PSIxMDAlIiAvPgogICAgICAgIDx1c2UKICAgICAgICAgICB4PSI1Ni4zOTk5OTQiCiAgICAgICAgICAgeGxpbms6aHJlZj0iI0VCR2FyYW1vbmQtUmVndWxhci00YyIKICAgICAgICAgICBpZD0idXNlMjY2IgogICAgICAgICAgIHk9IjAiCiAgICAgICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICAgICAgaGVpZ2h0PSIxMDAlIiAvPgogICAgICAgIDx1c2UKICAgICAgICAgICB4PSIxMTQuNzk5OTkiCiAgICAgICAgICAgeGxpbms6aHJlZj0iI0VCR2FyYW1vbmQtUmVndWxhci01NSIKICAgICAgICAgICBpZD0idXNlMjY4IgogICAgICAgICAgIHk9IjAiCiAgICAgICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICAgICAgaGVpZ2h0PSIxMDAlIiAvPgogICAgICA8L2c+CiAgICA8L2c+CiAgICA8ZwogICAgICAgaWQ9ImxpbmUyZF8yMyI+CiAgICAgIDxwYXRoCiAgICAgICAgIGQ9Im0gNzEuMSwxMjcuMzYxMDYgaCAzMCIKICAgICAgICAgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6I2QzMzY4MjtzdHJva2Utd2lkdGg6MjtzdHJva2UtZGFzaGFycmF5OjEyLjgsIDMuMiwgMiwgMy4yO3N0cm9rZS1kYXNob2Zmc2V0OjAiCiAgICAgICAgIGlkPSJwYXRoMjczIiAvPgogICAgPC9nPgogICAgPGcKICAgICAgIGlkPSJ0ZXh0XzE2Ij4KICAgICAgPCEtLSBTb2Z0cGx1cyAtLT4KICAgICAgPGcKICAgICAgICAgc3R5bGU9ImZpbGw6IzU4NmU3NSIKICAgICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMC4xNSwwLDAsLTAuMTUsMTEzLjEsMTMyLjYxMTA2KSIKICAgICAgICAgaWQ9ImczMDMiPgogICAgICAgIDxkZWZzCiAgICAgICAgICAgaWQ9ImRlZnMyODUiPgogICAgICAgICAgPHBhdGgKICAgICAgICAgICAgIGQ9Im0gMTMwNiwtMTAyIHEgLTI2OSwwIC00OTcsODAgLTIyNyw4MCAtNDA2LDIyNyAtMjUsMjUgLTQ4LDU3IC0yMiwzMiAtMzUsNzEgLTMyLDEyOCAtNDIsMzMyIC05LDIwNSAtMjIsMzQwIDAsNDUgMzgsNjcgMzksMjIgOTAsMjIgMzIsMCA2NCwtMTYgMzIsLTE2IDM4LC01NCAxMjgsLTQ5MyAzODEsLTcwNCAyNTMsLTIxMSA1MjgsLTIxMSAyMjQsMCAzOTcsOTYgMTczLDk2IDI3MiwyNzIgOTksMTc2IDk5LDQxMyAwLDI2MiAtODcsNDI1IC04NiwxNjMgLTI0NiwyODUgLTE2MCwxMjIgLTM5MCwyNjIgLTI1MCwxNjAgLTQ5MywzMjMgLTI0MywxNjQgLTQwMywzNzggLTE2MCwyMTUgLTE2MCw1MjIgMCwzMjYgMTQ3LDU4OCAxNDcsMjYzIDQ0NSw0MjAgMjk4LDE1NyA3NDYsMTU3IDIzMCwwIDM5OSwtNDggMTcwLC00OCAyNzMsLTkzIDUxLC0xOSA4NiwtNjQgMzUsLTQ1IDQ4LC05NiAzOCwtMTM1IDgzLC0zMDggNDUsLTE3MiA0NSwtMzI2IDAsLTcwIC05NiwtNzAgLTU4LDAgLTExMiwyNSAtNTQsMjYgLTY3LDY0IC0xMzUsMzQwIC0zMTQsNTE5IC0xNzksMTc5IC00NTQsMTc5IC0xOTIsMCAtMzU5LC03MSAtMTY2LC03MCAtMjcyLC0yMzAgLTEwNSwtMTYwIC0xMDUsLTQyOSAwLC0xOTIgMTI0LC0zNDkgMTI1LC0xNTYgMzMwLC0yOTcgMjA1LC0xNDEgNDQyLC0yODggMjI0LC0xMzQgNDM4LC0yOTQgMjE1LC0xNjAgMzUyLC0zODEgMTM4LC0yMjEgMTM4LC01NDEgMCwtMzc4IC0xNzMsLTY2MyBRIDIzNTUsMjA1IDIwNDEsNTEgMTcyOCwtMTAyIDEzMDYsLTEwMiBaIgogICAgICAgICAgICAgaWQ9IkVCR2FyYW1vbmQtUmVndWxhci01MyIKICAgICAgICAgICAgIHRyYW5zZm9ybT0ic2NhbGUoMC4wMTU2MjUpIiAvPgogICAgICAgICAgPHBhdGgKICAgICAgICAgICAgIGQ9Ik0gMTQ5OCwtOTAgUSAxMTM5LC05MCA4NTEsNzYgNTYzLDI0MyAzOTMsNTM0IDIyNCw4MjYgMjI0LDExOTcgcSAwLDI2OSAxMDUsNTI1IDEwNiwyNTYgMjk4LDQ2NyAxOTIsMjExIDQ0OCwzMzYgMjU2LDEyNSA1NTEsMTI1IDM3MSwwIDY2OCwtMTgwIDI5OCwtMTc5IDQ3NCwtNDcwIDE3NiwtMjkxIDE3NiwtNjM3IDAsLTM3MSAtMTYzLC03MDQgUSAyNjE4LDMyNiAyMjk4LDExOCAxOTc4LC05MCAxNDk4LC05MCBaIG0gMTM0LDE5MiBxIDIxOCwwIDM5MCw4MyAxNzMsODQgMjY5LDI2OSA3NywxNDggMTAyLDM1OSAyNiwyMTEgMjYsMzk3IDAsMzA3IC0xMTIsNTkxIC0xMTIsMjg1IC0zMTQsNDY3IC0yMDEsMTgzIC00NzYsMTgzIC0xNzMsMCAtMzExLC01NSAtMTM3LC01NCAtMjUyLC0yMDEgLTEyOCwtMTYwIC0xNjcsLTM5MSAtMzgsLTIzMCAtMzgsLTQ2MCAwLC0zMTQgMTE1LC01OTkgMTE1LC0yODQgMzEzLC00NjQgMTk5LC0xNzkgNDU1LC0xNzkgeiIKICAgICAgICAgICAgIGlkPSJFQkdhcmFtb25kLVJlZ3VsYXItNmYiCiAgICAgICAgICAgICB0cmFuc2Zvcm09InNjYWxlKDAuMDE1NjI1KSIgLz4KICAgICAgICAgIDxwYXRoCiAgICAgICAgICAgICBkPSJtIDI4MiwtMTkgcSAtNjQsMCAtOTYsMTYgLTMyLDE2IC0zMiw1NCAwLDUxIDQxLDcwIDQyLDIwIDEwNiwzMyAxNDcsMzIgMjExLDkyIDY0LDYxIDY0LDE4OSB2IDE4MDUgcSAtNjQsMCAtMTQ3LDMgLTgzLDMgLTE4NiwxMCAtMTksNiAtNTQsNDQgLTM1LDM5IC0zNSw3MSAwLDEzIDE5LDIyIDE5LDEwIDI1LDE2IDExNiw1OCAxOTksMTAzIDgzLDQ1IDE3OSw4OSAwLDU1NyAxMzcsOTI4IDEzOCwzNzIgMzU1LDU4OSAyMTgsMjE4IDQ2MSwzMTAgMjQ0LDkzIDQ1NSw5MyAzNTgsMCA1MzEsLTEwOSAxNzMsLTEwOCAxNzMsLTI3NSAwLC0xMjggLTY0LC0xOTIgLTY0LC02NCAtMTU0LC02NCAtNTcsMCAtMTA1LDQ1IC00OCw0NSAtMTEyLDEwMyAtODMsODMgLTIwNSwxNTYgLTEyMiw3NCAtMzMzLDc0IC0zMDEsMCAtNDk2LC0yNjMgLTE5NSwtMjYyIC0xOTUsLTgwNiB2IC01NjMgcSAwLC0zOCAyMiwtNTEgMjMsLTEzIDQ4LC0xMyBoIDgwMCBxIDMyLDAgNTgsLTE5IDI2LC0xOSAyNiwtNTEgMCwtNDUgLTEwLC05NyAtMTAsLTUxIC0yOSwtODkgLTE5LC01MSAtNTcsLTUxIGggLTczNiBxIC03NywwIC0xMDAsLTIzIC0yMiwtMjIgLTIyLC02MCBWIDQzNSBxIDAsLTEyOCA4MywtMTg5IDgzLC02MCAzMzksLTkyIDE0OCwtMjAgMTQ4LC0xMDMgMCwtMzggLTMyLC01NCAtMzIsLTE2IC05NiwtMTYgLTE5MiwwIC0zNDAsMTYgUSA5NzksMTMgODEzLDEzIDcwNCwxMyA2MzMsNiA1NjMsMCA0ODYsLTkgNDEwLC0xOSAyODIsLTE5IFoiCiAgICAgICAgICAgICBpZD0iRUJHYXJhbW9uZC1SZWd1bGFyLTY2IgogICAgICAgICAgICAgdHJhbnNmb3JtPSJzY2FsZSgwLjAxNTYyNSkiIC8+CiAgICAgICAgICA8cGF0aAogICAgICAgICAgICAgZD0iTSAxMjEwLC05MCBRIDg5NiwtOTAgNzIwLDEwMiA1NDQsMjk0IDU0NCw2NzIgdiAxNDg1IHEgMCw1MSAtMzksNzMgLTM4LDIzIC0xNjYsMjMgaCAtMzggcSAtMzIsMCAtNTUsNDEgLTIyLDQyIC0yMiw4NyAwLDEzIDE5LDM4IDE5LDI2IDI2LDMyIDEyOCw5MCAyMzMsMTc5IDEwNiw5MCAxOTIsMTc2IDg3LDg3IDE0NCwxNTcgMzIsMzIgNTQsNTQgMjMsMjMgNTUsMjMgMzIsMCA2MSwtMTMgMjksLTEzIDIyLC01NyBsIC0zMiwtMjg4IHEgLTYsLTcxIDMyLC05NyAzOSwtMjUgMTIyLC0yNSBoIDczMCBxIDI1LDAgNDQsLTQyIDIwLC00MSAyMCwtOTkgMCwtNTcgLTIwLC0xMTIgLTE5LC01NCAtNDQsLTU0IGggLTYzNCBxIC0xNjAsMCAtMjA4LC0yNiAtNDgsLTI1IC00OCwtMTUzIFYgODEzIHEgMCwtMjU2IDEwOSwtNDA0IDEwOSwtMTQ3IDMxMywtMTQ3IDE4NiwwIDI4OCwyOSAxMDMsMjkgMTg2LDg3IDEzLDEyIDI2LDEyIDI1LDAgMzQsLTI5IDEwLC0yOCAxMCwtNjAgMCwtMzIgLTEwNiwtMTI4IFEgMTc0Nyw3NyAxNTc3LC02IDE0MDgsLTkwIDEyMTAsLTkwIFoiCiAgICAgICAgICAgICBpZD0iRUJHYXJhbW9uZC1SZWd1bGFyLTc0IgogICAgICAgICAgICAgdHJhbnNmb3JtPSJzY2FsZSgwLjAxNTYyNSkiIC8+CiAgICAgICAgICA8cGF0aAogICAgICAgICAgICAgZD0ibSAyNTYsLTE4MjQgcSAtMzIsMCAtODMsMTAgLTUxLDkgLTUxLDQ4IDAsNTEgNDgsNzQgNDgsMjIgOTksNDEgOTYsMzIgMTg1LDc0IDkwLDQxIDkwLDE2OSB2IDMyNDUgcSAwLDUxIC0yOSwxNTMgLTI5LDEwMyAtOTMsMTk5IC02NCw5NiAtMTcyLDExNSAtMjYsNiAtMzksMzIgLTEzLDI2IC0xMyw1MSAwLDMyIDEzLDUxIDEzLDIwIDMyLDI2IDI0Myw1OCA0MTYsMTI1IDE3Myw2NyAzMjcsMTMxIDYsMCA2LDMgMCwzIDYsMyAxMywwIDI2LC0xOSAxMywtMTkgMTMsLTM4IDAsLTU4IC0xNiwtMTgzIC0xNiwtMTI0IC0xNiwtMjAxIDAsLTUxIDYsLTU4IDY0LDY0IDIzMywxNjMgMTcwLDEwMCAzODgsMTgwIDIxOCw4MCA0MTYsODAgMzMzLDAgNTY2LC0xNzYgMjM0LC0xNzYgMzU5LC00NTUgMTI1LC0yNzggMTI1LC01NzkgMCwtMjg4IC0xMDksLTU2MCBRIDI4ODAsNjA4IDI2ODEsMzkwIDI0ODMsMTczIDIyMjAsNDEgMTk1OCwtOTAgMTY1OCwtOTAgcSAtOTAsMCAtMjE1LDI5IC0xMjUsMjkgLTI0Myw3NCAtMTE4LDQ1IC0xODIsMTAyIC03LDAgLTE0LC03NCAtNiwtNzMgLTksLTE1MyAtMywtODAgLTMsLTk5IHYgLTExOTcgcSAwLC04MyA2NywtMTMxIDY3LC00OCAxNTMsLTcwIDg3LC0yMyAxNTEsLTQyIDUxLC0xOSA5OSwtNDEgNDgsLTIzIDQ4LC03NCAwLC0zOSAtNTEsLTQ4IC01MSwtMTAgLTg5LC0xMCAtMTg2LDAgLTMxMSwxNiAtMTI1LDE2IC0yOTEsMTYgLTEwOSwwIC0xNzYsLTYgLTY3LC03IC0xMzgsLTE2IC03MCwtMTAgLTE5OCwtMTAgeiBNIDE3NTQsMTA5IHEgOTYsMCAyMzMsNTcgMTM4LDU4IDI3NSwxODYgMTM4LDEyOCAyMzEsMzQ1IDkzLDIxOCA5Myw1MzggMCwzNzEgLTk2LDU5NSAtOTYsMjI0IC0yMzcsMzM5IC0xNDEsMTE2IC0yODgsMTU0IC0xNDcsMzkgLTI1MCwzOSAtMTUzLDAgLTMxNywtNjQgLTE2MywtNjQgLTI3NSwtMTQ0IC0xMTIsLTgwIC0xMTIsLTEyNSAwLC0xNDEgLTMsLTI4NSAtMywtMTQ0IC03LC0yNzkgLTMsLTEzNCAtNiwtMjQwIC0zLC0xMDUgLTMsLTE2MyAwLC0yNTYgMTE4LC00NzQgMTE5LC0yMTcgMjk1LC0zNDggMTc2LC0xMzEgMzQ5LC0xMzEgeiIKICAgICAgICAgICAgIGlkPSJFQkdhcmFtb25kLVJlZ3VsYXItNzAiCiAgICAgICAgICAgICB0cmFuc2Zvcm09InNjYWxlKDAuMDE1NjI1KSIgLz4KICAgICAgICAgIDxwYXRoCiAgICAgICAgICAgICBkPSJtIDI1MCwtMTkgcSAtMzIsMCAtODAsMTAgLTQ4LDkgLTQ4LDQ3IDAsNTIgNDgsNzQgNDgsMjIgOTksNDIgOTYsMzIgMTg1LDczIDkwLDQyIDkwLDE3MCB2IDMyMjUgcSAwLDE4NiAtNjcsMzExIC02NywxMjUgLTIyNywxNTcgLTUyLDEyIC01Miw4MyAwLDY0IDQ1LDc3IDE2NywzOCAyODgsNzkgMTIyLDQyIDIyNyw4NyAxMDYsNDUgMjA4LDgzIDI2LDEzIDM5LDEzIDEzLDAgMjIsLTE2IDEwLC0xNiAxMCwtMjkgMCwtNTcgLTIzLC0yNDYgLTIyLC0xODkgLTIyLC02MjQgViAzOTcgcSAwLC0xMjggODksLTE3MCA5MCwtNDEgMTg2LC03MyA1MSwtMjAgOTksLTQyIDQ4LC0yMiA0OCwtNzQgMCwtMzggLTQ4LC00NyAtNDgsLTEwIC04MCwtMTAgLTEyMSwwIC0xOTUsMTAgUSAxMDE4LDAgOTUwLDYgODgzLDEzIDc2OCwxMyA2NTksMTMgNTg4LDYgNTE4LDAgNDQ4LC05IDM3OCwtMTkgMjUwLC0xOSBaIgogICAgICAgICAgICAgaWQ9IkVCR2FyYW1vbmQtUmVndWxhci02YyIKICAgICAgICAgICAgIHRyYW5zZm9ybT0ic2NhbGUoMC4wMTU2MjUpIiAvPgogICAgICAgICAgPHBhdGgKICAgICAgICAgICAgIGQ9Im0gMjM0MiwtMTIyIHEgLTQ0LDAgLTQ0LDUyIDAsNjQgMTYsMTg4IDE2LDEyNSAxNiwyMDggMCwxMyAwLDIyIDAsMTAgMCwxNyBRIDIwODAsMTIyIDE4MjcsMTYgMTU3NCwtOTAgMTI3NCwtOTAgMTA2OSwtOTAgOTAyLC0zIDczNiw4MyA2NDAsMjUyIDU0NCw0MjIgNTQ0LDY3MiB2IDEyOTkgcSAwLDE0MSAtNjQsMjI0IC02NCw4MyAtMjExLDE0MSAtMzIsMTMgLTU4LDMyIC0yNSwxOSAtMjUsNzAgMCw1OCAyOCw3NyAyOSwxOSA2OCwyNiAyMTcsMTMgMzM1LDM1IDExOSwyMiAyOTgsNjcgMTksNyAyOSw3IDEwLDAgMjIsMCA3MSwwIDY0LC05MCAtMTksLTE0NyAtMjksLTI0NyAtOSwtOTkgLTksLTI0NiBWIDgxOSBxIDAsLTE1MyA3NywtMjg1IDc3LC0xMzEgMjAxLC0yMTQgMTI1LC04MyAyNjAsLTgzIDE2NiwwIDI5MSwxOSAxMjUsMTkgMjQ2LDEwOSA3MSw1MSAxNzksMTY2IDEwOSwxMTUgMTA5LDMxNCB2IDExNzEgcSAwLDEzNCAtODAsMjAxIC04MCw2OCAtMTgzLDkzIC0xMDIsMjYgLTE2NiwyNiAtNTcsMCAtOTYsMjIgLTM4LDIzIC0zOCw4NyAwLDU3IDQxLDc2IDQyLDIwIDkzLDIwIDE5OSw2IDMzMCwxNSAxMzEsMTAgMjM2LDMyIDEwNiwyMyAyMjIsNTUgMTIsNyAzMSwxMCAyMCwzIDMzLDMgODMsMCA4MywtNzAgMCwtNyAtNCwtMjMgLTMsLTE2IC05LC0zNSAtNiwtMTkgLTE2LC0xMDkgLTEwLC04OSAtMjAsLTE4NSAtOSwtOTYgLTksLTE0OCBWIDYwOCBxIDAsLTE3MyAzNSwtMjQ3IDM2LC03MyA4MCwtNzMgNTIsMCAxNTEsOSA5OSwxMCAxNDQsMTAgMzIsMCA2NCwtMTMgMzIsLTEyIDMyLC03MCAwLC01MSAtMjYsLTY3IC0yNSwtMTYgLTY0LC0yMyAtMjQ5LC0zMiAtNDI5LC05NiAtMTc5LC02NCAtMzIwLC0xMjEgLTE5LC03IC01OCwtMjMgLTM4LC0xNiAtNzAsLTE2IHoiCiAgICAgICAgICAgICBpZD0iRUJHYXJhbW9uZC1SZWd1bGFyLTc1IgogICAgICAgICAgICAgdHJhbnNmb3JtPSJzY2FsZSgwLjAxNTYyNSkiIC8+CiAgICAgICAgICA8cGF0aAogICAgICAgICAgICAgZD0ibSA5MjIsLTkwIHEgLTE5OSwwIC0zNzIsNjEgLTE3Miw2MSAtMjk0LDE3MCAtMzIsNzAgLTQ4LDIzNiAtMTYsMTY3IC0yMiwyNzYgMCw1NyA4Myw1NyAyNSwwIDQ3LC0xMCAyMywtOSAzMCwtMzQgUSA0MjksMzUyIDYxMSwyMTcgNzk0LDgzIDk3OSw4MyBxIDE4NiwwIDMxNywxMjUgMTMxLDEyNSAxMzEsMzEwIDAsMTczIC0xMTUsMjk4IC0xMTUsMTI1IC00MDMsMzA0IC0yMTgsMTM0IC0zNTMsMjU2IC0xMzQsMTIyIC0xOTUsMjUwIC02MCwxMjggLTYwLDI4OCAwLDIwNCA5NiwzNzAgOTYsMTY3IDI4OCwyNjYgMTkyLDEwMCA0ODAsMTAwIDE5MiwwIDMyMCwtMzkgMTI4LC0zOCAxOTIsLTgzIDUxLC03MCA4NiwtMjIxIDM1LC0xNTAgMzUsLTI4NSAwLC00NCAtNjQsLTQ0IC0zOCwwIC03MywxNiAtMzUsMTYgLTQ4LDQxIC04MywyMTEgLTIwOCwzMjMgLTEyNSwxMTIgLTMxMSwxMTIgLTE2MCwwIC0yODUsLTk2IC0xMjQsLTk2IC0xMjQsLTI4MSAwLC0xNDcgOTIsLTI2MyA5MywtMTE1IDM0OSwtMjYyIDM3MiwtMjExIDU1NCwtMzk0IDE4MiwtMTgyIDE4MiwtNDgzIDAsLTM0NSAtMjYyLC01NjMgUSAxMzM4LC05MCA5MjIsLTkwIFoiCiAgICAgICAgICAgICBpZD0iRUJHYXJhbW9uZC1SZWd1bGFyLTczIgogICAgICAgICAgICAgdHJhbnNmb3JtPSJzY2FsZSgwLjAxNTYyNSkiIC8+CiAgICAgICAgPC9kZWZzPgogICAgICAgIDx1c2UKICAgICAgICAgICB4bGluazpocmVmPSIjRUJHYXJhbW9uZC1SZWd1bGFyLTUzIgogICAgICAgICAgIGlkPSJ1c2UyODciCiAgICAgICAgICAgeD0iMCIKICAgICAgICAgICB5PSIwIgogICAgICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgICAgIGhlaWdodD0iMTAwJSIgLz4KICAgICAgICA8dXNlCiAgICAgICAgICAgeD0iNDYuNDk5OTg1IgogICAgICAgICAgIHhsaW5rOmhyZWY9IiNFQkdhcmFtb25kLVJlZ3VsYXItNmYiCiAgICAgICAgICAgaWQ9InVzZTI4OSIKICAgICAgICAgICB5PSIwIgogICAgICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgICAgIGhlaWdodD0iMTAwJSIgLz4KICAgICAgICA8dXNlCiAgICAgICAgICAgeD0iOTUuOTk5OTY5IgogICAgICAgICAgIHhsaW5rOmhyZWY9IiNFQkdhcmFtb25kLVJlZ3VsYXItNjYiCiAgICAgICAgICAgaWQ9InVzZTI5MSIKICAgICAgICAgICB5PSIwIgogICAgICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgICAgIGhlaWdodD0iMTAwJSIgLz4KICAgICAgICA8dXNlCiAgICAgICAgICAgeD0iMTI3Ljc5OTk2IgogICAgICAgICAgIHhsaW5rOmhyZWY9IiNFQkdhcmFtb25kLVJlZ3VsYXItNzQiCiAgICAgICAgICAgaWQ9InVzZTI5MyIKICAgICAgICAgICB5PSIwIgogICAgICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgICAgIGhlaWdodD0iMTAwJSIgLz4KICAgICAgICA8dXNlCiAgICAgICAgICAgeD0iMTU5LjE5OTk1IgogICAgICAgICAgIHhsaW5rOmhyZWY9IiNFQkdhcmFtb25kLVJlZ3VsYXItNzAiCiAgICAgICAgICAgaWQ9InVzZTI5NSIKICAgICAgICAgICB5PSIwIgogICAgICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgICAgIGhlaWdodD0iMTAwJSIgLz4KICAgICAgICA8dXNlCiAgICAgICAgICAgeD0iMjExLjA5OTk1IgogICAgICAgICAgIHhsaW5rOmhyZWY9IiNFQkdhcmFtb25kLVJlZ3VsYXItNmMiCiAgICAgICAgICAgaWQ9InVzZTI5NyIKICAgICAgICAgICB5PSIwIgogICAgICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgICAgIGhlaWdodD0iMTAwJSIgLz4KICAgICAgICA8dXNlCiAgICAgICAgICAgeD0iMjM1LjA5OTkzIgogICAgICAgICAgIHhsaW5rOmhyZWY9IiNFQkdhcmFtb25kLVJlZ3VsYXItNzUiCiAgICAgICAgICAgaWQ9InVzZTI5OSIKICAgICAgICAgICB5PSIwIgogICAgICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgICAgIGhlaWdodD0iMTAwJSIgLz4KICAgICAgICA8dXNlCiAgICAgICAgICAgeD0iMjg3Ljc5OTkzIgogICAgICAgICAgIHhsaW5rOmhyZWY9IiNFQkdhcmFtb25kLVJlZ3VsYXItNzMiCiAgICAgICAgICAgaWQ9InVzZTMwMSIKICAgICAgICAgICB5PSIwIgogICAgICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgICAgIGhlaWdodD0iMTAwJSIgLz4KICAgICAgPC9nPgogICAgPC9nPgogIDwvZz4KICA8ZGVmcwogICAgIGlkPSJkZWZzMzEyIj4KICAgIDxjbGlwUGF0aAogICAgICAgaWQ9InBhZmFhNjZhNDQ5Ij4KICAgICAgPHJlY3QKICAgICAgICAgaGVpZ2h0PSIyNjYuMTEyIgogICAgICAgICB3aWR0aD0iMzU3LjEyIgogICAgICAgICB4PSI1Ny41OTk5OTgiCiAgICAgICAgIHk9IjQxLjQ3MiIKICAgICAgICAgaWQ9InJlY3QzMDkiIC8+CiAgICA8L2NsaXBQYXRoPgogIDwvZGVmcz4KPC9zdmc+Cg==" class="width60 center top6">
<div class="footer"><hr class="hr_bottom"><div class="multi_column"><h6 class="bottom_left">图神经网络导论</h6><h6 class="bottom_center">神经网络</h6><h6 class="bottom_right">tengzhang@hust.edu.cn</h6></div></div>
</section></section><section><section data-notes="" lineno="359" class="slide " data-line="359" data-h="4" data-v="0">
<div class="header"><img class="hust" src=""><div class="title"><hr class="hr_top"><h5>Swish 函数</h5></div></div>
<p>Swish 函数是一种自门控 (self-gated) 激活函数：</p>
<p>

$$
\begin{align*}
    \swish(z) = z \cdot \sigma (\beta z) = \frac{z}{1 + \exp(-\beta z)}
\end{align*}
$$
</p>

<p>其中<span class="mathjax-exps">$\beta$</span>是可学习的参数或一个固定超参数</p>
<ul>
<li>当<span class="mathjax-exps">$\sigma (\beta z)$</span>接近于<span class="mathjax-exps">$1$</span>时，门处于<span class="blue">开</span>状态，激活函数的输出近似于<span class="mathjax-exps">$z$</span>本身</li>
<li>当<span class="mathjax-exps">$\sigma (\beta z)$</span>接近于<span class="mathjax-exps">$0$</span>时，门处于<span class="blue">关</span>状态，激活函数的输出近似于<span class="mathjax-exps">$0$</span></li>
</ul>
<div class="footer"><hr class="hr_bottom"><div class="multi_column"><h6 class="bottom_left">图神经网络导论</h6><h6 class="bottom_center">神经网络</h6><h6 class="bottom_right">tengzhang@hust.edu.cn</h6></div></div>
</section><section vertical="true" data-notes="" lineno="382" class="slide " data-line="382" data-h="4" data-v="1">
<div class="header"><img class="hust" src=""><div class="title"><hr class="hr_top"><h5>Swish 函数</h5></div></div>
<img src="data:image/svg+xml;charset=utf-8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgaGVpZ2h0PSIyNjYuOTExOTlwdCIKICAgdmVyc2lvbj0iMS4xIgogICB2aWV3Qm94PSIwIDAgMzU3LjkyMDAyIDI2Ni45MTE5OCIKICAgd2lkdGg9IjM1Ny45MjAwMXB0IgogICBpZD0ic3ZnMjgxIgogICBzb2RpcG9kaTpkb2NuYW1lPSJTd2lzaC5zdmciCiAgIGlua3NjYXBlOnZlcnNpb249IjEuMS4xICgzYmY1YWUwZDI1LCAyMDIxLTA5LTIwKSIKICAgeG1sbnM6aW5rc2NhcGU9Imh0dHA6Ly93d3cuaW5rc2NhcGUub3JnL25hbWVzcGFjZXMvaW5rc2NhcGUiCiAgIHhtbG5zOnNvZGlwb2RpPSJodHRwOi8vc29kaXBvZGkuc291cmNlZm9yZ2UubmV0L0RURC9zb2RpcG9kaS0wLmR0ZCIKICAgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iPgogIDxzb2RpcG9kaTpuYW1lZHZpZXcKICAgICBpZD0ibmFtZWR2aWV3MjgzIgogICAgIHBhZ2Vjb2xvcj0iI2ZmZmZmZiIKICAgICBib3JkZXJjb2xvcj0iIzY2NjY2NiIKICAgICBib3JkZXJvcGFjaXR5PSIxLjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTpwYWdlb3BhY2l0eT0iMC4wIgogICAgIGlua3NjYXBlOnBhZ2VjaGVja2VyYm9hcmQ9IjAiCiAgICAgaW5rc2NhcGU6ZG9jdW1lbnQtdW5pdHM9InB0IgogICAgIHNob3dncmlkPSJmYWxzZSIKICAgICBpbmtzY2FwZTp6b29tPSIxLjg5NDUzMTIiCiAgICAgaW5rc2NhcGU6Y3g9IjIzMC45Mjc4NCIKICAgICBpbmtzY2FwZTpjeT0iMTc1LjI0MTI0IgogICAgIGlua3NjYXBlOndpbmRvdy13aWR0aD0iMzg0MCIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSIyMTA2IgogICAgIGlua3NjYXBlOndpbmRvdy14PSIwIgogICAgIGlua3NjYXBlOndpbmRvdy15PSI1NCIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIxIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2ZzI4MSIgLz4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGEyIj4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yaz4KICAgICAgICA8ZGM6dHlwZQogICAgICAgICAgIHJkZjpyZXNvdXJjZT0iaHR0cDovL3B1cmwub3JnL2RjL2RjbWl0eXBlL1N0aWxsSW1hZ2UiIC8+CiAgICAgICAgPGRjOmRhdGU+MjAyMS0xMC0yMFQwODo0ODo1NC42NDAzODA8L2RjOmRhdGU+CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgPGRjOmNyZWF0b3I+CiAgICAgICAgICA8Y2M6QWdlbnQ+CiAgICAgICAgICAgIDxkYzp0aXRsZT5NYXRwbG90bGliIHYzLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88L2RjOnRpdGxlPgogICAgICAgICAgPC9jYzpBZ2VudD4KICAgICAgICA8L2RjOmNyZWF0b3I+CiAgICAgIDwvY2M6V29yaz4KICAgIDwvcmRmOlJERj4KICA8L21ldGFkYXRhPgogIDxkZWZzCiAgICAgaWQ9ImRlZnM2Ij4KICAgIDxzdHlsZQogICAgICAgdHlwZT0idGV4dC9jc3MiCiAgICAgICBpZD0ic3R5bGU0Ij4qe3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO308L3N0eWxlPgogIDwvZGVmcz4KICA8cGF0aAogICAgIGQ9Im0gLTU3LjIsMzA0LjUyOCBoIDQ2MC44IHYgLTM0NS42IEggLTU3LjIgWiIKICAgICBzdHlsZT0iZmlsbDpub25lIgogICAgIGlkPSJwYXRoOCIgLz4KICA8ZwogICAgIGlkPSJsaW5lMmRfMTgiCiAgICAgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTU3LjIsLTQxLjA3MikiIC8+CiAgPGcKICAgICBpZD0ibGluZTJkXzIwIgogICAgIHRyYW5zZm9ybT0idHJhbnNsYXRlKC01Ny4yLC00MS4wNzIpIiAvPgogIDxnCiAgICAgaWQ9ImxpbmUyZF8yMiIKICAgICB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNTcuMiwtNDEuMDcyKSIgLz4KICA8ZwogICAgIGlkPSJsaW5lMmRfMjQiCiAgICAgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTU3LjIsLTQxLjA3MikiIC8+CiAgPGcKICAgICBpZD0iZzEwMTEiCiAgICAgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTU3LjIsLTQxLjA3MikiPgogICAgPHBhdGgKICAgICAgIGQ9Ik0gNTcuNiwzMDcuNTg0IEggNDE0LjcyIFYgNDEuNDcyIEggNTcuNiBaIgogICAgICAgc3R5bGU9ImZpbGw6bm9uZSIKICAgICAgIGlkPSJwYXRoMTEiIC8+CiAgICA8ZwogICAgICAgaWQ9Inh0aWNrXzEiPgogICAgICA8ZwogICAgICAgICBpZD0ibGluZTJkXzEiPgogICAgICAgIDxkZWZzCiAgICAgICAgICAgaWQ9ImRlZnMxNSI+CiAgICAgICAgICA8cGF0aAogICAgICAgICAgICAgZD0iTSAwLDAgViAtMy41IgogICAgICAgICAgICAgaWQ9Im04MTdlZDRlMzE1IgogICAgICAgICAgICAgc3R5bGU9InN0cm9rZTojNTg2ZTc1O3N0cm9rZS13aWR0aDowLjgiIC8+CiAgICAgICAgPC9kZWZzPgogICAgICAgIDxnCiAgICAgICAgICAgaWQ9ImcxOSI+CiAgICAgICAgICA8dXNlCiAgICAgICAgICAgICBzdHlsZT0iZmlsbDojNTg2ZTc1O3N0cm9rZTojNTg2ZTc1O3N0cm9rZS13aWR0aDowLjgiCiAgICAgICAgICAgICB4PSI5Ni4xMTI5MzgiCiAgICAgICAgICAgICB4bGluazpocmVmPSIjbTgxN2VkNGUzMTUiCiAgICAgICAgICAgICB5PSIyNjAuMzcwNTciCiAgICAgICAgICAgICBpZD0idXNlMTciCiAgICAgICAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgICAgICAgIGhlaWdodD0iMTAwJSIgLz4KICAgICAgICA8L2c+CiAgICAgIDwvZz4KICAgICAgPGcKICAgICAgICAgaWQ9InRleHRfMSI+CiAgICAgICAgPCEtLSDiiJI0IC0tPgogICAgICAgIDxnCiAgICAgICAgICAgc3R5bGU9ImZpbGw6IzU4NmU3NSIKICAgICAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgwLjEsMCwwLC0wLjEsODguNzQxODQ3LDI1MS4yOTA4OSkiCiAgICAgICAgICAgaWQ9ImczMCI+CiAgICAgICAgICA8ZGVmcwogICAgICAgICAgICAgaWQ9ImRlZnMyNCI+CiAgICAgICAgICAgIDxwYXRoCiAgICAgICAgICAgICAgIGQ9Ik0gNjc4LDIyNzIgSCA0Njg0IFYgMTc0MSBIIDY3OCBaIgogICAgICAgICAgICAgICBpZD0iRGVqYVZ1U2Fucy0yMjEyIgogICAgICAgICAgICAgICB0cmFuc2Zvcm09InNjYWxlKDAuMDE1NjI1KSIgLz4KICAgICAgICAgICAgPHBhdGgKICAgICAgICAgICAgICAgZD0iTSAyNDE5LDQxMTYgODI1LDE2MjUgaCAxNTk0IHogbSAtMTY2LDU1MCBoIDc5NCBWIDE2MjUgaCA2NjYgViAxMTAwIEggMzA0NyBWIDAgSCAyNDE5IFYgMTEwMCBIIDMxMyB2IDYwOSB6IgogICAgICAgICAgICAgICBpZD0iRGVqYVZ1U2Fucy0zNCIKICAgICAgICAgICAgICAgdHJhbnNmb3JtPSJzY2FsZSgwLjAxNTYyNSkiIC8+CiAgICAgICAgICA8L2RlZnM+CiAgICAgICAgICA8dXNlCiAgICAgICAgICAgICB4bGluazpocmVmPSIjRGVqYVZ1U2Fucy0yMjEyIgogICAgICAgICAgICAgaWQ9InVzZTI2IgogICAgICAgICAgICAgeD0iMCIKICAgICAgICAgICAgIHk9IjAiCiAgICAgICAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgICAgICAgIGhlaWdodD0iMTAwJSIgLz4KICAgICAgICAgIDx1c2UKICAgICAgICAgICAgIHg9IjgzLjc4OTA2MiIKICAgICAgICAgICAgIHhsaW5rOmhyZWY9IiNEZWphVnVTYW5zLTM0IgogICAgICAgICAgICAgaWQ9InVzZTI4IgogICAgICAgICAgICAgeT0iMCIKICAgICAgICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgICAgICAgaGVpZ2h0PSIxMDAlIiAvPgogICAgICAgIDwvZz4KICAgICAgPC9nPgogICAgPC9nPgogICAgPGcKICAgICAgIGlkPSJ4dGlja18yIj4KICAgICAgPGcKICAgICAgICAgaWQ9ImxpbmUyZF8yIj4KICAgICAgICA8ZwogICAgICAgICAgIGlkPSJnMzYiPgogICAgICAgICAgPHVzZQogICAgICAgICAgICAgc3R5bGU9ImZpbGw6IzU4NmU3NTtzdHJva2U6IzU4NmU3NTtzdHJva2Utd2lkdGg6MC44IgogICAgICAgICAgICAgeD0iMTY2LjEzNjQ3IgogICAgICAgICAgICAgeGxpbms6aHJlZj0iI204MTdlZDRlMzE1IgogICAgICAgICAgICAgeT0iMjYwLjM3MDU3IgogICAgICAgICAgICAgaWQ9InVzZTM0IgogICAgICAgICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICAgICAgICBoZWlnaHQ9IjEwMCUiIC8+CiAgICAgICAgPC9nPgogICAgICA8L2c+CiAgICAgIDxnCiAgICAgICAgIGlkPSJ0ZXh0XzIiPgogICAgICAgIDwhLS0g4oiSMiAtLT4KICAgICAgICA8ZwogICAgICAgICAgIHN0eWxlPSJmaWxsOiM1ODZlNzUiCiAgICAgICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMC4xLDAsMCwtMC4xLDE1OC43NjUzOCwyNTEuMjkwODkpIgogICAgICAgICAgIGlkPSJnNDYiPgogICAgICAgICAgPGRlZnMKICAgICAgICAgICAgIGlkPSJkZWZzNDAiPgogICAgICAgICAgICA8cGF0aAogICAgICAgICAgICAgICBkPSJNIDEyMjgsNTMxIEggMzQzMSBWIDAgSCA0NjkgdiA1MzEgcSAzNTksMzcyIDk3OSw5OTggNjIxLDYyNyA3ODAsODA5IDMwMywzNDAgNDIzLDU3NiAxMjEsMjM2IDEyMSw0NjQgMCwzNzIgLTI2MSw2MDYgLTI2MSwyMzUgLTY4MCwyMzUgLTI5NywwIC02MjcsLTEwMyAtMzI5LC0xMDMgLTcwNCwtMzEzIHYgNjM4IHEgMzgxLDE1MyA3MTIsMjMxIDMzMiw3OCA2MDcsNzggNzI1LDAgMTE1NiwtMzYzIDQzMSwtMzYyIDQzMSwtOTY4IDAsLTI4OCAtMTA4LC01NDYgLTEwNywtMjU3IC0zOTIsLTYwNyAtNzgsLTkxIC00OTcsLTUyNCBRIDE5OTEsMTMwOSAxMjI4LDUzMSBaIgogICAgICAgICAgICAgICBpZD0iRGVqYVZ1U2Fucy0zMiIKICAgICAgICAgICAgICAgdHJhbnNmb3JtPSJzY2FsZSgwLjAxNTYyNSkiIC8+CiAgICAgICAgICA8L2RlZnM+CiAgICAgICAgICA8dXNlCiAgICAgICAgICAgICB4bGluazpocmVmPSIjRGVqYVZ1U2Fucy0yMjEyIgogICAgICAgICAgICAgaWQ9InVzZTQyIgogICAgICAgICAgICAgeD0iMCIKICAgICAgICAgICAgIHk9IjAiCiAgICAgICAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgICAgICAgIGhlaWdodD0iMTAwJSIgLz4KICAgICAgICAgIDx1c2UKICAgICAgICAgICAgIHg9IjgzLjc4OTA2MiIKICAgICAgICAgICAgIHhsaW5rOmhyZWY9IiNEZWphVnVTYW5zLTMyIgogICAgICAgICAgICAgaWQ9InVzZTQ0IgogICAgICAgICAgICAgeT0iMCIKICAgICAgICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgICAgICAgaGVpZ2h0PSIxMDAlIiAvPgogICAgICAgIDwvZz4KICAgICAgPC9nPgogICAgPC9nPgogICAgPGcKICAgICAgIGlkPSJ4dGlja18zIj4KICAgICAgPGcKICAgICAgICAgaWQ9ImxpbmUyZF8zIj4KICAgICAgICA8ZwogICAgICAgICAgIGlkPSJnNTIiPgogICAgICAgICAgPHVzZQogICAgICAgICAgICAgc3R5bGU9ImZpbGw6IzU4NmU3NTtzdHJva2U6IzU4NmU3NTtzdHJva2Utd2lkdGg6MC44IgogICAgICAgICAgICAgeD0iMjM2LjE2IgogICAgICAgICAgICAgeGxpbms6aHJlZj0iI204MTdlZDRlMzE1IgogICAgICAgICAgICAgeT0iMjYwLjM3MDU3IgogICAgICAgICAgICAgaWQ9InVzZTUwIgogICAgICAgICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICAgICAgICBoZWlnaHQ9IjEwMCUiIC8+CiAgICAgICAgPC9nPgogICAgICA8L2c+CiAgICAgIDxnCiAgICAgICAgIGlkPSJ0ZXh0XzMiPgogICAgICAgIDwhLS0gMCAtLT4KICAgICAgICA8ZwogICAgICAgICAgIHN0eWxlPSJmaWxsOiM1ODZlNzUiCiAgICAgICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMC4xLDAsMCwtMC4xLDIzMi45Nzg3NSwyNTEuMjkwODkpIgogICAgICAgICAgIGlkPSJnNjAiPgogICAgICAgICAgPGRlZnMKICAgICAgICAgICAgIGlkPSJkZWZzNTYiPgogICAgICAgICAgICA8cGF0aAogICAgICAgICAgICAgICBkPSJtIDIwMzQsNDI1MCBxIC00ODcsMCAtNzMzLC00ODAgLTI0NSwtNDc5IC0yNDUsLTE0NDIgMCwtOTU5IDI0NSwtMTQzOSAyNDYsLTQ4MCA3MzMsLTQ4MCA0OTEsMCA3MzYsNDgwIDI0Niw0ODAgMjQ2LDE0MzkgMCw5NjMgLTI0NiwxNDQyIC0yNDUsNDgwIC03MzYsNDgwIHogbSAwLDUwMCBxIDc4NSwwIDExOTksLTYyMSA0MTQsLTYyMCA0MTQsLTE4MDEgMCwtMTE3OCAtNDE0LC0xNzk5IC00MTQsLTYyMCAtMTE5OSwtNjIwIC03ODQsMCAtMTE5OCw2MjAgLTQxNCw2MjEgLTQxNCwxNzk5IDAsMTE4MSA0MTQsMTgwMSA0MTQsNjIxIDExOTgsNjIxIHoiCiAgICAgICAgICAgICAgIGlkPSJEZWphVnVTYW5zLTMwIgogICAgICAgICAgICAgICB0cmFuc2Zvcm09InNjYWxlKDAuMDE1NjI1KSIgLz4KICAgICAgICAgIDwvZGVmcz4KICAgICAgICAgIDx1c2UKICAgICAgICAgICAgIHhsaW5rOmhyZWY9IiNEZWphVnVTYW5zLTMwIgogICAgICAgICAgICAgaWQ9InVzZTU4IgogICAgICAgICAgICAgeD0iMCIKICAgICAgICAgICAgIHk9IjAiCiAgICAgICAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgICAgICAgIGhlaWdodD0iMTAwJSIgLz4KICAgICAgICA8L2c+CiAgICAgIDwvZz4KICAgIDwvZz4KICAgIDxnCiAgICAgICBpZD0ieHRpY2tfNCI+CiAgICAgIDxnCiAgICAgICAgIGlkPSJsaW5lMmRfNCI+CiAgICAgICAgPGcKICAgICAgICAgICBpZD0iZzY2Ij4KICAgICAgICAgIDx1c2UKICAgICAgICAgICAgIHN0eWxlPSJmaWxsOiM1ODZlNzU7c3Ryb2tlOiM1ODZlNzU7c3Ryb2tlLXdpZHRoOjAuOCIKICAgICAgICAgICAgIHg9IjMwNi4xODM1MyIKICAgICAgICAgICAgIHhsaW5rOmhyZWY9IiNtODE3ZWQ0ZTMxNSIKICAgICAgICAgICAgIHk9IjI2MC4zNzA1NyIKICAgICAgICAgICAgIGlkPSJ1c2U2NCIKICAgICAgICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgICAgICAgaGVpZ2h0PSIxMDAlIiAvPgogICAgICAgIDwvZz4KICAgICAgPC9nPgogICAgICA8ZwogICAgICAgICBpZD0idGV4dF80Ij4KICAgICAgICA8IS0tIDIgLS0+CiAgICAgICAgPGcKICAgICAgICAgICBzdHlsZT0iZmlsbDojNTg2ZTc1IgogICAgICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KDAuMSwwLDAsLTAuMSwzMDMuMDAyMjgsMjUxLjI5MDg5KSIKICAgICAgICAgICBpZD0iZzcxIj4KICAgICAgICAgIDx1c2UKICAgICAgICAgICAgIHhsaW5rOmhyZWY9IiNEZWphVnVTYW5zLTMyIgogICAgICAgICAgICAgaWQ9InVzZTY5IgogICAgICAgICAgICAgeD0iMCIKICAgICAgICAgICAgIHk9IjAiCiAgICAgICAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgICAgICAgIGhlaWdodD0iMTAwJSIgLz4KICAgICAgICA8L2c+CiAgICAgIDwvZz4KICAgIDwvZz4KICAgIDxnCiAgICAgICBpZD0ieHRpY2tfNSI+CiAgICAgIDxnCiAgICAgICAgIGlkPSJsaW5lMmRfNSI+CiAgICAgICAgPGcKICAgICAgICAgICBpZD0iZzc3Ij4KICAgICAgICAgIDx1c2UKICAgICAgICAgICAgIHN0eWxlPSJmaWxsOiM1ODZlNzU7c3Ryb2tlOiM1ODZlNzU7c3Ryb2tlLXdpZHRoOjAuOCIKICAgICAgICAgICAgIHg9IjM3Ni4yMDcwNiIKICAgICAgICAgICAgIHhsaW5rOmhyZWY9IiNtODE3ZWQ0ZTMxNSIKICAgICAgICAgICAgIHk9IjI2MC4zNzA1NyIKICAgICAgICAgICAgIGlkPSJ1c2U3NSIKICAgICAgICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgICAgICAgaGVpZ2h0PSIxMDAlIiAvPgogICAgICAgIDwvZz4KICAgICAgPC9nPgogICAgICA8ZwogICAgICAgICBpZD0idGV4dF81Ij4KICAgICAgICA8IS0tIDQgLS0+CiAgICAgICAgPGcKICAgICAgICAgICBzdHlsZT0iZmlsbDojNTg2ZTc1IgogICAgICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KDAuMSwwLDAsLTAuMSwzNzMuMDI1ODEsMjUxLjI5MDg5KSIKICAgICAgICAgICBpZD0iZzgyIj4KICAgICAgICAgIDx1c2UKICAgICAgICAgICAgIHhsaW5rOmhyZWY9IiNEZWphVnVTYW5zLTM0IgogICAgICAgICAgICAgaWQ9InVzZTgwIgogICAgICAgICAgICAgeD0iMCIKICAgICAgICAgICAgIHk9IjAiCiAgICAgICAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgICAgICAgIGhlaWdodD0iMTAwJSIgLz4KICAgICAgICA8L2c+CiAgICAgIDwvZz4KICAgIDwvZz4KICAgIDxnCiAgICAgICBpZD0ieXRpY2tfMSI+CiAgICAgIDxnCiAgICAgICAgIGlkPSJsaW5lMmRfNiI+CiAgICAgICAgPGRlZnMKICAgICAgICAgICBpZD0iZGVmczg4Ij4KICAgICAgICAgIDxwYXRoCiAgICAgICAgICAgICBkPSJNIDAsMCBIIDMuNSIKICAgICAgICAgICAgIGlkPSJtOGZhOTI5ZGIwNiIKICAgICAgICAgICAgIHN0eWxlPSJzdHJva2U6IzU4NmU3NTtzdHJva2Utd2lkdGg6MC44IiAvPgogICAgICAgIDwvZGVmcz4KICAgICAgICA8ZwogICAgICAgICAgIGlkPSJnOTIiPgogICAgICAgICAgPHVzZQogICAgICAgICAgICAgc3R5bGU9ImZpbGw6IzU4NmU3NTtzdHJva2U6IzU4NmU3NTtzdHJva2Utd2lkdGg6MC44IgogICAgICAgICAgICAgeD0iMjM2LjE2IgogICAgICAgICAgICAgeGxpbms6aHJlZj0iI204ZmE5MjlkYjA2IgogICAgICAgICAgICAgeT0iMzAzLjI5MTg3IgogICAgICAgICAgICAgaWQ9InVzZTkwIgogICAgICAgICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICAgICAgICBoZWlnaHQ9IjEwMCUiIC8+CiAgICAgICAgPC9nPgogICAgICA8L2c+CiAgICAgIDxnCiAgICAgICAgIGlkPSJ0ZXh0XzYiPgogICAgICAgIDwhLS0g4oiSMSAtLT4KICAgICAgICA8ZwogICAgICAgICAgIHN0eWxlPSJmaWxsOiM1ODZlNzUiCiAgICAgICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMC4xLDAsMCwtMC4xLDI0My4xNiwzMDcuMDkxMDkpIgogICAgICAgICAgIGlkPSJnMTAyIj4KICAgICAgICAgIDxkZWZzCiAgICAgICAgICAgICBpZD0iZGVmczk2Ij4KICAgICAgICAgICAgPHBhdGgKICAgICAgICAgICAgICAgZD0iTSA3OTQsNTMxIEggMTgyNSBWIDQwOTEgTCA3MDMsMzg2NiB2IDU3NSBsIDExMTYsMjI1IGggNjMxIFYgNTMxIEggMzQ4MSBWIDAgSCA3OTQgWiIKICAgICAgICAgICAgICAgaWQ9IkRlamFWdVNhbnMtMzEiCiAgICAgICAgICAgICAgIHRyYW5zZm9ybT0ic2NhbGUoMC4wMTU2MjUpIiAvPgogICAgICAgICAgPC9kZWZzPgogICAgICAgICAgPHVzZQogICAgICAgICAgICAgeGxpbms6aHJlZj0iI0RlamFWdVNhbnMtMjIxMiIKICAgICAgICAgICAgIGlkPSJ1c2U5OCIKICAgICAgICAgICAgIHg9IjAiCiAgICAgICAgICAgICB5PSIwIgogICAgICAgICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICAgICAgICBoZWlnaHQ9IjEwMCUiIC8+CiAgICAgICAgICA8dXNlCiAgICAgICAgICAgICB4PSI4My43ODkwNjIiCiAgICAgICAgICAgICB4bGluazpocmVmPSIjRGVqYVZ1U2Fucy0zMSIKICAgICAgICAgICAgIGlkPSJ1c2UxMDAiCiAgICAgICAgICAgICB5PSIwIgogICAgICAgICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICAgICAgICBoZWlnaHQ9IjEwMCUiIC8+CiAgICAgICAgPC9nPgogICAgICA8L2c+CiAgICA8L2c+CiAgICA8ZwogICAgICAgaWQ9Inl0aWNrXzIiPgogICAgICA8ZwogICAgICAgICBpZD0ibGluZTJkXzciPgogICAgICAgIDxnCiAgICAgICAgICAgaWQ9ImcxMDgiPgogICAgICAgICAgPHVzZQogICAgICAgICAgICAgc3R5bGU9ImZpbGw6IzU4NmU3NTtzdHJva2U6IzU4NmU3NTtzdHJva2Utd2lkdGg6MC44IgogICAgICAgICAgICAgeD0iMjM2LjE2IgogICAgICAgICAgICAgeGxpbms6aHJlZj0iI204ZmE5MjlkYjA2IgogICAgICAgICAgICAgeT0iMjYwLjM3MDU3IgogICAgICAgICAgICAgaWQ9InVzZTEwNiIKICAgICAgICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgICAgICAgaGVpZ2h0PSIxMDAlIiAvPgogICAgICAgIDwvZz4KICAgICAgPC9nPgogICAgICA8ZwogICAgICAgICBpZD0idGV4dF83Ij4KICAgICAgICA8IS0tIDAgLS0+CiAgICAgICAgPGcKICAgICAgICAgICBzdHlsZT0iZmlsbDojNTg2ZTc1IgogICAgICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KDAuMSwwLDAsLTAuMSwyNDMuMTYsMjY0LjE2OTgpIgogICAgICAgICAgIGlkPSJnMTEzIj4KICAgICAgICAgIDx1c2UKICAgICAgICAgICAgIHhsaW5rOmhyZWY9IiNEZWphVnVTYW5zLTMwIgogICAgICAgICAgICAgaWQ9InVzZTExMSIKICAgICAgICAgICAgIHg9IjAiCiAgICAgICAgICAgICB5PSIwIgogICAgICAgICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICAgICAgICBoZWlnaHQ9IjEwMCUiIC8+CiAgICAgICAgPC9nPgogICAgICA8L2c+CiAgICA8L2c+CiAgICA8ZwogICAgICAgaWQ9Inl0aWNrXzMiPgogICAgICA8ZwogICAgICAgICBpZD0ibGluZTJkXzgiPgogICAgICAgIDxnCiAgICAgICAgICAgaWQ9ImcxMTkiPgogICAgICAgICAgPHVzZQogICAgICAgICAgICAgc3R5bGU9ImZpbGw6IzU4NmU3NTtzdHJva2U6IzU4NmU3NTtzdHJva2Utd2lkdGg6MC44IgogICAgICAgICAgICAgeD0iMjM2LjE2IgogICAgICAgICAgICAgeGxpbms6aHJlZj0iI204ZmE5MjlkYjA2IgogICAgICAgICAgICAgeT0iMjE3LjQ0OTMiCiAgICAgICAgICAgICBpZD0idXNlMTE3IgogICAgICAgICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICAgICAgICBoZWlnaHQ9IjEwMCUiIC8+CiAgICAgICAgPC9nPgogICAgICA8L2c+CiAgICAgIDxnCiAgICAgICAgIGlkPSJ0ZXh0XzgiPgogICAgICAgIDwhLS0gMSAtLT4KICAgICAgICA8ZwogICAgICAgICAgIHN0eWxlPSJmaWxsOiM1ODZlNzUiCiAgICAgICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMC4xLDAsMCwtMC4xLDI0My4xNiwyMjEuMjQ4NTEpIgogICAgICAgICAgIGlkPSJnMTI0Ij4KICAgICAgICAgIDx1c2UKICAgICAgICAgICAgIHhsaW5rOmhyZWY9IiNEZWphVnVTYW5zLTMxIgogICAgICAgICAgICAgaWQ9InVzZTEyMiIKICAgICAgICAgICAgIHg9IjAiCiAgICAgICAgICAgICB5PSIwIgogICAgICAgICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICAgICAgICBoZWlnaHQ9IjEwMCUiIC8+CiAgICAgICAgPC9nPgogICAgICA8L2c+CiAgICA8L2c+CiAgICA8ZwogICAgICAgaWQ9Inl0aWNrXzQiPgogICAgICA8ZwogICAgICAgICBpZD0ibGluZTJkXzkiPgogICAgICAgIDxnCiAgICAgICAgICAgaWQ9ImcxMzAiPgogICAgICAgICAgPHVzZQogICAgICAgICAgICAgc3R5bGU9ImZpbGw6IzU4NmU3NTtzdHJva2U6IzU4NmU3NTtzdHJva2Utd2lkdGg6MC44IgogICAgICAgICAgICAgeD0iMjM2LjE2IgogICAgICAgICAgICAgeGxpbms6aHJlZj0iI204ZmE5MjlkYjA2IgogICAgICAgICAgICAgeT0iMTc0LjUyOCIKICAgICAgICAgICAgIGlkPSJ1c2UxMjgiCiAgICAgICAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgICAgICAgIGhlaWdodD0iMTAwJSIgLz4KICAgICAgICA8L2c+CiAgICAgIDwvZz4KICAgICAgPGcKICAgICAgICAgaWQ9InRleHRfOSI+CiAgICAgICAgPCEtLSAyIC0tPgogICAgICAgIDxnCiAgICAgICAgICAgc3R5bGU9ImZpbGw6IzU4NmU3NSIKICAgICAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgwLjEsMCwwLC0wLjEsMjQzLjE2LDE3OC4zMjcyMikiCiAgICAgICAgICAgaWQ9ImcxMzUiPgogICAgICAgICAgPHVzZQogICAgICAgICAgICAgeGxpbms6aHJlZj0iI0RlamFWdVNhbnMtMzIiCiAgICAgICAgICAgICBpZD0idXNlMTMzIgogICAgICAgICAgICAgeD0iMCIKICAgICAgICAgICAgIHk9IjAiCiAgICAgICAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgICAgICAgIGhlaWdodD0iMTAwJSIgLz4KICAgICAgICA8L2c+CiAgICAgIDwvZz4KICAgIDwvZz4KICAgIDxnCiAgICAgICBpZD0ieXRpY2tfNSI+CiAgICAgIDxnCiAgICAgICAgIGlkPSJsaW5lMmRfMTAiPgogICAgICAgIDxnCiAgICAgICAgICAgaWQ9ImcxNDEiPgogICAgICAgICAgPHVzZQogICAgICAgICAgICAgc3R5bGU9ImZpbGw6IzU4NmU3NTtzdHJva2U6IzU4NmU3NTtzdHJva2Utd2lkdGg6MC44IgogICAgICAgICAgICAgeD0iMjM2LjE2IgogICAgICAgICAgICAgeGxpbms6aHJlZj0iI204ZmE5MjlkYjA2IgogICAgICAgICAgICAgeT0iMTMxLjYwNjciCiAgICAgICAgICAgICBpZD0idXNlMTM5IgogICAgICAgICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICAgICAgICBoZWlnaHQ9IjEwMCUiIC8+CiAgICAgICAgPC9nPgogICAgICA8L2c+CiAgICAgIDxnCiAgICAgICAgIGlkPSJ0ZXh0XzEwIj4KICAgICAgICA8IS0tIDMgLS0+CiAgICAgICAgPGcKICAgICAgICAgICBzdHlsZT0iZmlsbDojNTg2ZTc1IgogICAgICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KDAuMSwwLDAsLTAuMSwyNDMuMTYsMTM1LjQwNTkzKSIKICAgICAgICAgICBpZD0iZzE0OSI+CiAgICAgICAgICA8ZGVmcwogICAgICAgICAgICAgaWQ9ImRlZnMxNDUiPgogICAgICAgICAgICA8cGF0aAogICAgICAgICAgICAgICBkPSJtIDI1OTcsMjUxNiBxIDQ1MywtOTcgNzA3LC00MDQgMjU1LC0zMDYgMjU1LC03NTYgMCwtNjkwIC00NzUsLTEwNjkgLTQ3NSwtMzc4IC0xMzUwLC0zNzggLTI5MywwIC02MDQsNTggLTMxMSw1OCAtNjQyLDE3NCB2IDYwOSBxIDI2MiwtMTUzIDU3NCwtMjMxIDMxMywtNzggNjU0LC03OCA1OTMsMCA5MDQsMjM0IDMxMSwyMzQgMzExLDY4MSAwLDQxMyAtMjg5LDY0NSAtMjg5LDIzMyAtODA0LDIzMyBoIC01NDQgdiA1MTkgaCA1NjkgcSA0NjUsMCA3MTIsMTg2IDI0NywxODYgMjQ3LDUzNiAwLDM1OSAtMjU1LDU1MSAtMjU0LDE5MyAtNzI5LDE5MyAtMjYwLDAgLTU1NywtNTcgLTI5NywtNTYgLTY1MywtMTc0IHYgNTYyIHEgMzYwLDEwMCA2NzQsMTUwIDMxNCw1MCA1OTIsNTAgNzE5LDAgMTEzNywtMzI3IDQxOSwtMzI2IDQxOSwtODgyIDAsLTM4OCAtMjIyLC02NTUgLTIyMiwtMjY3IC02MzEsLTM3MCB6IgogICAgICAgICAgICAgICBpZD0iRGVqYVZ1U2Fucy0zMyIKICAgICAgICAgICAgICAgdHJhbnNmb3JtPSJzY2FsZSgwLjAxNTYyNSkiIC8+CiAgICAgICAgICA8L2RlZnM+CiAgICAgICAgICA8dXNlCiAgICAgICAgICAgICB4bGluazpocmVmPSIjRGVqYVZ1U2Fucy0zMyIKICAgICAgICAgICAgIGlkPSJ1c2UxNDciCiAgICAgICAgICAgICB4PSIwIgogICAgICAgICAgICAgeT0iMCIKICAgICAgICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgICAgICAgaGVpZ2h0PSIxMDAlIiAvPgogICAgICAgIDwvZz4KICAgICAgPC9nPgogICAgPC9nPgogICAgPGcKICAgICAgIGlkPSJ5dGlja182Ij4KICAgICAgPGcKICAgICAgICAgaWQ9ImxpbmUyZF8xMSI+CiAgICAgICAgPGcKICAgICAgICAgICBpZD0iZzE1NSI+CiAgICAgICAgICA8dXNlCiAgICAgICAgICAgICBzdHlsZT0iZmlsbDojNTg2ZTc1O3N0cm9rZTojNTg2ZTc1O3N0cm9rZS13aWR0aDowLjgiCiAgICAgICAgICAgICB4PSIyMzYuMTYiCiAgICAgICAgICAgICB4bGluazpocmVmPSIjbThmYTkyOWRiMDYiCiAgICAgICAgICAgICB5PSI4OC42ODU0MTciCiAgICAgICAgICAgICBpZD0idXNlMTUzIgogICAgICAgICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICAgICAgICBoZWlnaHQ9IjEwMCUiIC8+CiAgICAgICAgPC9nPgogICAgICA8L2c+CiAgICAgIDxnCiAgICAgICAgIGlkPSJ0ZXh0XzExIj4KICAgICAgICA8IS0tIDQgLS0+CiAgICAgICAgPGcKICAgICAgICAgICBzdHlsZT0iZmlsbDojNTg2ZTc1IgogICAgICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KDAuMSwwLDAsLTAuMSwyNDMuMTYsOTIuNDg0NjM4KSIKICAgICAgICAgICBpZD0iZzE2MCI+CiAgICAgICAgICA8dXNlCiAgICAgICAgICAgICB4bGluazpocmVmPSIjRGVqYVZ1U2Fucy0zNCIKICAgICAgICAgICAgIGlkPSJ1c2UxNTgiCiAgICAgICAgICAgICB4PSIwIgogICAgICAgICAgICAgeT0iMCIKICAgICAgICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgICAgICAgaGVpZ2h0PSIxMDAlIiAvPgogICAgICAgIDwvZz4KICAgICAgPC9nPgogICAgPC9nPgogICAgPGcKICAgICAgIGlkPSJ5dGlja183Ij4KICAgICAgPGcKICAgICAgICAgaWQ9ImxpbmUyZF8xMiI+CiAgICAgICAgPGcKICAgICAgICAgICBpZD0iZzE2NiI+CiAgICAgICAgICA8dXNlCiAgICAgICAgICAgICBzdHlsZT0iZmlsbDojNTg2ZTc1O3N0cm9rZTojNTg2ZTc1O3N0cm9rZS13aWR0aDowLjgiCiAgICAgICAgICAgICB4PSIyMzYuMTYiCiAgICAgICAgICAgICB4bGluazpocmVmPSIjbThmYTkyOWRiMDYiCiAgICAgICAgICAgICB5PSI0NS43NjQxMyIKICAgICAgICAgICAgIGlkPSJ1c2UxNjQiCiAgICAgICAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgICAgICAgIGhlaWdodD0iMTAwJSIgLz4KICAgICAgICA8L2c+CiAgICAgIDwvZz4KICAgICAgPGcKICAgICAgICAgaWQ9InRleHRfMTIiPgogICAgICAgIDwhLS0gNSAtLT4KICAgICAgICA8ZwogICAgICAgICAgIHN0eWxlPSJmaWxsOiM1ODZlNzUiCiAgICAgICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMC4xLDAsMCwtMC4xLDI0My4xNiw0OS41NjMzNDgpIgogICAgICAgICAgIGlkPSJnMTc0Ij4KICAgICAgICAgIDxkZWZzCiAgICAgICAgICAgICBpZD0iZGVmczE3MCI+CiAgICAgICAgICAgIDxwYXRoCiAgICAgICAgICAgICAgIGQ9Ik0gNjkxLDQ2NjYgSCAzMTY5IFYgNDEzNCBIIDEyNjkgViAyOTkxIHEgMTM3LDQ3IDI3NCw3MCAxMzgsMjMgMjc2LDIzIDc4MSwwIDEyMzcsLTQyOCA0NTcsLTQyOCA0NTcsLTExNTkgUSAzNTEzLDc0NCAzMDQ0LDMyNiAyNTc1LC05MSAxNzIyLC05MSAxNDI4LC05MSAxMTIzLC00MSA4MTksOSA0OTQsMTA5IHYgNjM1IHEgMjgxLC0xNTMgNTgxLC0yMjggMzAwLC03NSA2MzQsLTc1IDU0MSwwIDg1NiwyODQgMzE2LDI4NCAzMTYsNzcyIDAsNDg3IC0zMTYsNzcxIC0zMTUsMjg1IC04NTYsMjg1IC0yNTMsMCAtNTA1LC01NiAtMjUxLC01NiAtNTEzLC0xNzUgeiIKICAgICAgICAgICAgICAgaWQ9IkRlamFWdVNhbnMtMzUiCiAgICAgICAgICAgICAgIHRyYW5zZm9ybT0ic2NhbGUoMC4wMTU2MjUpIiAvPgogICAgICAgICAgPC9kZWZzPgogICAgICAgICAgPHVzZQogICAgICAgICAgICAgeGxpbms6aHJlZj0iI0RlamFWdVNhbnMtMzUiCiAgICAgICAgICAgICBpZD0idXNlMTcyIgogICAgICAgICAgICAgeD0iMCIKICAgICAgICAgICAgIHk9IjAiCiAgICAgICAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgICAgICAgIGhlaWdodD0iMTAwJSIgLz4KICAgICAgICA8L2c+CiAgICAgIDwvZz4KICAgIDwvZz4KICAgIDxwYXRoCiAgICAgICBjbGlwLXBhdGg9InVybCgjcGVjZDljNTk3MTYpIgogICAgICAgZD0iTSA5NS40ODE4MzcsMzQ2LjYgNDEwLjUxODU5LDE1My40OTY1NyB2IDAiCiAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojYjU4OTAwO3N0cm9rZS13aWR0aDoyO3N0cm9rZS1saW5lY2FwOnNxdWFyZSIKICAgICAgIGlkPSJwYXRoMTc5IiAvPgogICAgPHBhdGgKICAgICAgIGNsaXAtcGF0aD0idXJsKCNwZWNkOWM1OTcxNikiCiAgICAgICBkPSJtIDYxLjEwMTE3NiwyNzYuNjUwMjMgMzcuMTEyNDcxLDQuNDE3NTIgMTQuMDA0NzAzLDEuNDE2NzMgMTEuMjAzNzcsMC45MDk3NCA5LjgwMzI5LDAuNTY2MzkgOC40MDI4MiwwLjI2Nzc3IDcuNzAyNTksMC4wMzIyIDcuMDAyMzYsLTAuMTc2NDQgNy4wMDIzNSwtMC4zOTkxIDYuMzAyMTIsLTAuNTcxMzIgNi4zMDIxMSwtMC43OTIyMSA2LjMwMjEyLC0xLjAzMjA4IDUuNjAxODgsLTEuMTMzNjUgNS42MDE4OSwtMS4zNTAwMiA1LjYwMTg4LC0xLjU3Nzk3IDUuNjAxODgsLTEuODE2NTcgNS42MDE4OCwtMi4wNjQ3IDUuNjAxODksLTIuMzIxMSA1LjYwMTg4LC0yLjU4NDM2IDUuNjAxODgsLTIuODUyOTMgNS42MDE4OCwtMy4xMjUxNyA1LjYwMTg5LC0zLjM5OTM3IDUuNjAxODgsLTMuNjczOCA1LjYwMTg4LC0zLjk0NjcgNS42MDE4OCwtNC4yMTYzNCA1LjYwMTg4LC00LjQ4MTA4IDYuMzAyMTIsLTUuMzQ5NTIgNi4zMDIxMiwtNS42NjQ5MyA2LjMwMjEyLC01Ljk2Njg3IDYuMzAyMTIsLTYuMjUzNTggNy4wMDIzNSwtNy4yNjQzMyA3LjAwMjM1LC03LjU3MzE1IDcuNzAyNTksLTguNjU2NTMgOC40MDI4MiwtOS43OTMxNiA5LjEwMzA2LC0xMC45Njk2OSA5LjgwMzMsLTEyLjE2OTYyIDExLjIwMzc2LC0xNC4yNzY1MSAxMy4zMDQ0NywtMTcuMzQyNjcgMTYuMTA1NDEsLTIxLjM3ODIyIDI1LjIwODQ3LC0zMy44ODI2MyA5LjgwMzMsLTEzLjIxNjcyNyB2IDAiCiAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojMjY4YmQyO3N0cm9rZS13aWR0aDoyO3N0cm9rZS1kYXNoYXJyYXk6Ny40LCAzLjI7c3Ryb2tlLWRhc2hvZmZzZXQ6MCIKICAgICAgIGlkPSJwYXRoMTgyIiAvPgogICAgPHBhdGgKICAgICAgIGNsaXAtcGF0aD0idXJsKCNwZWNkOWM1OTcxNikiCiAgICAgICBkPSJtIDYxLjEwMTE3NiwyNjEuODA2OTEgMTYuODA1NjQ4LDAuNjUzNDMgMTUuNDA1MTc2LDAuODIxODMgMTQuMDA0NzEsMC45NzQzNyAxMy4zMDQ0NywxLjE1MjM1IDEzLjMwNDQ3LDEuMzc1MyAxNi44MDU2NCwxLjk4Mjc0IDE4LjkwNjM2LDIuMjE0MDUgOC40MDI4MiwwLjc3MjU0IDcuMDAyMzUsMC40MjczOCA1LjYwMTg5LDAuMTM5NTkgNS42MDE4OCwtMC4wOTMxIDQuOTAxNjQsLTAuMzEzNDkgNC4yMDE0MiwtMC40Njk3NyA0LjIwMTQxLC0wLjY3OTI0IDQuMjAxNDEsLTAuOTEwNTEgNC4yMDE0MSwtMS4xNjIwNyA0LjIwMTQxLC0xLjQzMTc4IDMuNTAxMTgsLTEuNDEwMyAzLjUwMTE4LC0xLjYxNTMgMy41MDExNywtMS44MjU0OSAzLjUwMTE4LC0yLjAzODg1IDQuMjAxNDEsLTIuNzI5NjEgNC4yMDE0MSwtMy4wMzYwNiA0LjIwMTQyLC0zLjMzNTk5IDQuMjAxNDEsLTMuNjI1MzIgNC4yMDE0MSwtMy45MDA0NiA0LjkwMTY1LC00Ljg3NTE0IDQuOTAxNjQsLTUuMTk0NjIgNS42MDE4OCwtNi4yODM2OSA2LjMwMjEyLC03LjQ0NzQzIDcuMDAyMzYsLTguNjU1NjMgOC40MDI4MiwtMTAuNzgyNDUgMTAuNTAzNTMsLTEzLjg3MjU3IDE4LjkwNjM1LC0yNS40MjQ0MyAyMi40MDc1MywtMzAuMDE4MTEgMTYuODA1NjUsLTIyLjE0MDc0IDE3LjUwNTg4LC0yMi42ODY3NzMgMTguOTA2MzUsLTI0LjEyODUyOCAxMS4yMDM3NywtMTQuMTUxMTg4IHYgMCIKICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiNkYzMyMmY7c3Ryb2tlLXdpZHRoOjI7c3Ryb2tlLWRhc2hhcnJheToyLCAzLjM7c3Ryb2tlLWRhc2hvZmZzZXQ6MCIKICAgICAgIGlkPSJwYXRoMTg1IiAvPgogICAgPHBhdGgKICAgICAgIGNsaXAtcGF0aD0idXJsKCNwZWNkOWM1OTcxNikiCiAgICAgICBkPSJNIDYxLjEwMTE3NiwyNjAuMzcwNTggSCAyMzYuMTYgbCAwLjcwMDIzLC0wLjc1NjEgMi44MDA5NSwtMy41MzU4MyAxNzAuODU3NDEsLTIwOS40NTYwOTUgdiAwIgogICAgICAgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6I2QzMzY4MjtzdHJva2Utd2lkdGg6MjtzdHJva2UtZGFzaGFycmF5OjEyLjgsIDMuMiwgMiwgMy4yO3N0cm9rZS1kYXNob2Zmc2V0OjAiCiAgICAgICBpZD0icGF0aDE4OCIgLz4KICAgIDxwYXRoCiAgICAgICBkPSJNIDIzNi4xNiwzMDcuNTg0IFYgNDEuNDcyIgogICAgICAgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6IzU4NmU3NTtzdHJva2Utd2lkdGg6MC44O3N0cm9rZS1saW5lY2FwOnNxdWFyZTtzdHJva2UtbGluZWpvaW46bWl0ZXIiCiAgICAgICBpZD0icGF0aDE5MSIgLz4KICAgIDxwYXRoCiAgICAgICBkPSJNIDIzNi4xNiwzMDcuNTg0IFYgNDEuNDcyIgogICAgICAgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6IzU4NmU3NTtzdHJva2Utd2lkdGg6MC44O3N0cm9rZS1saW5lY2FwOnNxdWFyZTtzdHJva2UtbGluZWpvaW46bWl0ZXIiCiAgICAgICBpZD0icGF0aDE5NCIgLz4KICAgIDxwYXRoCiAgICAgICBkPSJNIDU3LjYsMjYwLjM3MDU4IEggNDE0LjcyIgogICAgICAgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6IzU4NmU3NTtzdHJva2Utd2lkdGg6MC44O3N0cm9rZS1saW5lY2FwOnNxdWFyZTtzdHJva2UtbGluZWpvaW46bWl0ZXIiCiAgICAgICBpZD0icGF0aDE5NyIgLz4KICAgIDxwYXRoCiAgICAgICBkPSJNIDU3LjYsMjYwLjM3MDU4IEggNDE0LjcyIgogICAgICAgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6IzU4NmU3NTtzdHJva2Utd2lkdGg6MC44O3N0cm9rZS1saW5lY2FwOnNxdWFyZTtzdHJva2UtbGluZWpvaW46bWl0ZXIiCiAgICAgICBpZD0icGF0aDIwMCIgLz4KICAgIDxnCiAgICAgICBpZD0ibGluZTJkXzE3Ij4KICAgICAgPHBhdGgKICAgICAgICAgZD0ibSA3MS4xLDYwLjI5NyBoIDMwIgogICAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojYjU4OTAwO3N0cm9rZS13aWR0aDoyO3N0cm9rZS1saW5lY2FwOnNxdWFyZSIKICAgICAgICAgaWQ9InBhdGgyMDYiIC8+CiAgICA8L2c+CiAgICA8ZwogICAgICAgaWQ9InRleHRfMTMiPgogICAgICA8IS0tICRcYmV0YT0wJCAtLT4KICAgICAgPGcKICAgICAgICAgc3R5bGU9ImZpbGw6IzU4NmU3NSIKICAgICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMC4xNSwwLDAsLTAuMTUsMTEzLjEsNjUuNTQ3KSIKICAgICAgICAgaWQ9ImcyMjAiPgogICAgICAgIDxkZWZzCiAgICAgICAgICAgaWQ9ImRlZnMyMTIiPgogICAgICAgICAgPHBhdGgKICAgICAgICAgICAgIGQ9Ik0gODcyLDIxNiA1NzIsLTEzMzEgSCAtNiBsIDkzNCw0ODA5IHEgMjc4LDE0MjUgMTYxMCwxNDI1IDEzNTAsMCAxMTIxLC0xMjAzIFEgMzUwMywyODQ0IDI4OTQsMjUzMSAzNzEzLDIyNTAgMzU1MywxNDE2IDMyNzIsLTY5IDE3NTksLTY2IDEwOTcsLTYzIDg3MiwyMTYgWiBtIDE0Nyw3NTAgcSAyNDAsLTU0NCA4NTYsLTU0MSA5MDAsMCAxMDkxLDk4MSAxNzIsODgyIC0xMjkxLDgxMyBsIDEwMyw1MzEgcSAxMTMxLC0xOSAxMzI4LDEwMDAgMTM1LDY4OCAtNTk3LDY4NCAtODE4LDAgLTEwMDYsLTk3NSB6IgogICAgICAgICAgICAgaWQ9IkRlamFWdVNhbnMtT2JsaXF1ZS0zYjIiCiAgICAgICAgICAgICB0cmFuc2Zvcm09InNjYWxlKDAuMDE1NjI1KSIgLz4KICAgICAgICAgIDxwYXRoCiAgICAgICAgICAgICBkPSJNIDY3OCwyOTA2IEggNDY4NCBWIDIzODEgSCA2NzggWiBtIDAsLTEyNzUgSCA0Njg0IFYgMTEwMCBIIDY3OCBaIgogICAgICAgICAgICAgaWQ9IkRlamFWdVNhbnMtM2QiCiAgICAgICAgICAgICB0cmFuc2Zvcm09InNjYWxlKDAuMDE1NjI1KSIgLz4KICAgICAgICA8L2RlZnM+CiAgICAgICAgPHVzZQogICAgICAgICAgIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAsMC4zOTA2MjUpIgogICAgICAgICAgIHhsaW5rOmhyZWY9IiNEZWphVnVTYW5zLU9ibGlxdWUtM2IyIgogICAgICAgICAgIGlkPSJ1c2UyMTQiCiAgICAgICAgICAgeD0iMCIKICAgICAgICAgICB5PSIwIgogICAgICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgICAgIGhlaWdodD0iMTAwJSIgLz4KICAgICAgICA8dXNlCiAgICAgICAgICAgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoODMuMzAwNzgxLDAuMzkwNjI1KSIKICAgICAgICAgICB4bGluazpocmVmPSIjRGVqYVZ1U2Fucy0zZCIKICAgICAgICAgICBpZD0idXNlMjE2IgogICAgICAgICAgIHg9IjAiCiAgICAgICAgICAgeT0iMCIKICAgICAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgICAgICBoZWlnaHQ9IjEwMCUiIC8+CiAgICAgICAgPHVzZQogICAgICAgICAgIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE4Ni41NzIyNywwLjM5MDYyNSkiCiAgICAgICAgICAgeGxpbms6aHJlZj0iI0RlamFWdVNhbnMtMzAiCiAgICAgICAgICAgaWQ9InVzZTIxOCIKICAgICAgICAgICB4PSIwIgogICAgICAgICAgIHk9IjAiCiAgICAgICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICAgICAgaGVpZ2h0PSIxMDAlIiAvPgogICAgICA8L2c+CiAgICA8L2c+CiAgICA8ZwogICAgICAgaWQ9ImxpbmUyZF8xOSI+CiAgICAgIDxwYXRoCiAgICAgICAgIGQ9Im0gNzEuMSw4Mi42NDcgaCAzMCIKICAgICAgICAgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6IzI2OGJkMjtzdHJva2Utd2lkdGg6MjtzdHJva2UtZGFzaGFycmF5OjcuNCwgMy4yO3N0cm9rZS1kYXNob2Zmc2V0OjAiCiAgICAgICAgIGlkPSJwYXRoMjIzIiAvPgogICAgPC9nPgogICAgPGcKICAgICAgIGlkPSJ0ZXh0XzE0Ij4KICAgICAgPCEtLSAkXGJldGE9MC41JCAtLT4KICAgICAgPGcKICAgICAgICAgc3R5bGU9ImZpbGw6IzU4NmU3NSIKICAgICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMC4xNSwwLDAsLTAuMTUsMTEzLjEsODcuODk3KSIKICAgICAgICAgaWQ9ImcyNDAiPgogICAgICAgIDxkZWZzCiAgICAgICAgICAgaWQ9ImRlZnMyMjgiPgogICAgICAgICAgPHBhdGgKICAgICAgICAgICAgIGQ9Im0gNjg0LDc5NCBoIDY2MCBWIDAgSCA2ODQgWiIKICAgICAgICAgICAgIGlkPSJEZWphVnVTYW5zLTJlIgogICAgICAgICAgICAgdHJhbnNmb3JtPSJzY2FsZSgwLjAxNTYyNSkiIC8+CiAgICAgICAgPC9kZWZzPgogICAgICAgIDx1c2UKICAgICAgICAgICB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLDAuMzkwNjI1KSIKICAgICAgICAgICB4bGluazpocmVmPSIjRGVqYVZ1U2Fucy1PYmxpcXVlLTNiMiIKICAgICAgICAgICBpZD0idXNlMjMwIgogICAgICAgICAgIHg9IjAiCiAgICAgICAgICAgeT0iMCIKICAgICAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgICAgICBoZWlnaHQ9IjEwMCUiIC8+CiAgICAgICAgPHVzZQogICAgICAgICAgIHRyYW5zZm9ybT0idHJhbnNsYXRlKDgzLjMwMDc4MSwwLjM5MDYyNSkiCiAgICAgICAgICAgeGxpbms6aHJlZj0iI0RlamFWdVNhbnMtM2QiCiAgICAgICAgICAgaWQ9InVzZTIzMiIKICAgICAgICAgICB4PSIwIgogICAgICAgICAgIHk9IjAiCiAgICAgICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICAgICAgaGVpZ2h0PSIxMDAlIiAvPgogICAgICAgIDx1c2UKICAgICAgICAgICB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxODYuNTcyMjcsMC4zOTA2MjUpIgogICAgICAgICAgIHhsaW5rOmhyZWY9IiNEZWphVnVTYW5zLTMwIgogICAgICAgICAgIGlkPSJ1c2UyMzQiCiAgICAgICAgICAgeD0iMCIKICAgICAgICAgICB5PSIwIgogICAgICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgICAgIGhlaWdodD0iMTAwJSIgLz4KICAgICAgICA8dXNlCiAgICAgICAgICAgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjUwLjE5NTMxLDAuMzkwNjI1KSIKICAgICAgICAgICB4bGluazpocmVmPSIjRGVqYVZ1U2Fucy0yZSIKICAgICAgICAgICBpZD0idXNlMjM2IgogICAgICAgICAgIHg9IjAiCiAgICAgICAgICAgeT0iMCIKICAgICAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgICAgICBoZWlnaHQ9IjEwMCUiIC8+CiAgICAgICAgPHVzZQogICAgICAgICAgIHRyYW5zZm9ybT0idHJhbnNsYXRlKDI4MS45ODI0MiwwLjM5MDYyNSkiCiAgICAgICAgICAgeGxpbms6aHJlZj0iI0RlamFWdVNhbnMtMzUiCiAgICAgICAgICAgaWQ9InVzZTIzOCIKICAgICAgICAgICB4PSIwIgogICAgICAgICAgIHk9IjAiCiAgICAgICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICAgICAgaGVpZ2h0PSIxMDAlIiAvPgogICAgICA8L2c+CiAgICA8L2c+CiAgICA8ZwogICAgICAgaWQ9ImxpbmUyZF8yMSI+CiAgICAgIDxwYXRoCiAgICAgICAgIGQ9Im0gNzEuMSwxMDQuOTk3IGggMzAiCiAgICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiNkYzMyMmY7c3Ryb2tlLXdpZHRoOjI7c3Ryb2tlLWRhc2hhcnJheToyLCAzLjM7c3Ryb2tlLWRhc2hvZmZzZXQ6MCIKICAgICAgICAgaWQ9InBhdGgyNDMiIC8+CiAgICA8L2c+CiAgICA8ZwogICAgICAgaWQ9InRleHRfMTUiPgogICAgICA8IS0tICRcYmV0YT0xJCAtLT4KICAgICAgPGcKICAgICAgICAgc3R5bGU9ImZpbGw6IzU4NmU3NSIKICAgICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMC4xNSwwLDAsLTAuMTUsMTEzLjEsMTEwLjI0NykiCiAgICAgICAgIGlkPSJnMjUzIj4KICAgICAgICA8dXNlCiAgICAgICAgICAgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCwwLjM5MDYyNSkiCiAgICAgICAgICAgeGxpbms6aHJlZj0iI0RlamFWdVNhbnMtT2JsaXF1ZS0zYjIiCiAgICAgICAgICAgaWQ9InVzZTI0NyIKICAgICAgICAgICB4PSIwIgogICAgICAgICAgIHk9IjAiCiAgICAgICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICAgICAgaGVpZ2h0PSIxMDAlIiAvPgogICAgICAgIDx1c2UKICAgICAgICAgICB0cmFuc2Zvcm09InRyYW5zbGF0ZSg4My4zMDA3ODEsMC4zOTA2MjUpIgogICAgICAgICAgIHhsaW5rOmhyZWY9IiNEZWphVnVTYW5zLTNkIgogICAgICAgICAgIGlkPSJ1c2UyNDkiCiAgICAgICAgICAgeD0iMCIKICAgICAgICAgICB5PSIwIgogICAgICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgICAgIGhlaWdodD0iMTAwJSIgLz4KICAgICAgICA8dXNlCiAgICAgICAgICAgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTg2LjU3MjI3LDAuMzkwNjI1KSIKICAgICAgICAgICB4bGluazpocmVmPSIjRGVqYVZ1U2Fucy0zMSIKICAgICAgICAgICBpZD0idXNlMjUxIgogICAgICAgICAgIHg9IjAiCiAgICAgICAgICAgeT0iMCIKICAgICAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgICAgICBoZWlnaHQ9IjEwMCUiIC8+CiAgICAgIDwvZz4KICAgIDwvZz4KICAgIDxnCiAgICAgICBpZD0ibGluZTJkXzIzIj4KICAgICAgPHBhdGgKICAgICAgICAgZD0ibSA3MS4xLDEyNy4zNDcgaCAzMCIKICAgICAgICAgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6I2QzMzY4MjtzdHJva2Utd2lkdGg6MjtzdHJva2UtZGFzaGFycmF5OjEyLjgsIDMuMiwgMiwgMy4yO3N0cm9rZS1kYXNob2Zmc2V0OjAiCiAgICAgICAgIGlkPSJwYXRoMjU2IiAvPgogICAgPC9nPgogICAgPGcKICAgICAgIGlkPSJ0ZXh0XzE2Ij4KICAgICAgPCEtLSAkXGJldGE9MTAwJCAtLT4KICAgICAgPGcKICAgICAgICAgc3R5bGU9ImZpbGw6IzU4NmU3NSIKICAgICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMC4xNSwwLDAsLTAuMTUsMTEzLjEsMTMyLjU5NykiCiAgICAgICAgIGlkPSJnMjcwIj4KICAgICAgICA8dXNlCiAgICAgICAgICAgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCwwLjM5MDYyNSkiCiAgICAgICAgICAgeGxpbms6aHJlZj0iI0RlamFWdVNhbnMtT2JsaXF1ZS0zYjIiCiAgICAgICAgICAgaWQ9InVzZTI2MCIKICAgICAgICAgICB4PSIwIgogICAgICAgICAgIHk9IjAiCiAgICAgICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICAgICAgaGVpZ2h0PSIxMDAlIiAvPgogICAgICAgIDx1c2UKICAgICAgICAgICB0cmFuc2Zvcm09InRyYW5zbGF0ZSg4My4zMDA3ODEsMC4zOTA2MjUpIgogICAgICAgICAgIHhsaW5rOmhyZWY9IiNEZWphVnVTYW5zLTNkIgogICAgICAgICAgIGlkPSJ1c2UyNjIiCiAgICAgICAgICAgeD0iMCIKICAgICAgICAgICB5PSIwIgogICAgICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgICAgIGhlaWdodD0iMTAwJSIgLz4KICAgICAgICA8dXNlCiAgICAgICAgICAgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTg2LjU3MjI3LDAuMzkwNjI1KSIKICAgICAgICAgICB4bGluazpocmVmPSIjRGVqYVZ1U2Fucy0zMSIKICAgICAgICAgICBpZD0idXNlMjY0IgogICAgICAgICAgIHg9IjAiCiAgICAgICAgICAgeT0iMCIKICAgICAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgICAgICBoZWlnaHQ9IjEwMCUiIC8+CiAgICAgICAgPHVzZQogICAgICAgICAgIHRyYW5zZm9ybT0idHJhbnNsYXRlKDI1MC4xOTUzMSwwLjM5MDYyNSkiCiAgICAgICAgICAgeGxpbms6aHJlZj0iI0RlamFWdVNhbnMtMzAiCiAgICAgICAgICAgaWQ9InVzZTI2NiIKICAgICAgICAgICB4PSIwIgogICAgICAgICAgIHk9IjAiCiAgICAgICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICAgICAgaGVpZ2h0PSIxMDAlIiAvPgogICAgICAgIDx1c2UKICAgICAgICAgICB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzMTMuODE4MzYsMC4zOTA2MjUpIgogICAgICAgICAgIHhsaW5rOmhyZWY9IiNEZWphVnVTYW5zLTMwIgogICAgICAgICAgIGlkPSJ1c2UyNjgiCiAgICAgICAgICAgeD0iMCIKICAgICAgICAgICB5PSIwIgogICAgICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgICAgIGhlaWdodD0iMTAwJSIgLz4KICAgICAgPC9nPgogICAgPC9nPgogIDwvZz4KICA8ZGVmcwogICAgIGlkPSJkZWZzMjc5Ij4KICAgIDxjbGlwUGF0aAogICAgICAgaWQ9InBlY2Q5YzU5NzE2Ij4KICAgICAgPHJlY3QKICAgICAgICAgaGVpZ2h0PSIyNjYuMTEyIgogICAgICAgICB3aWR0aD0iMzU3LjEyIgogICAgICAgICB4PSI1Ny41OTk5OTgiCiAgICAgICAgIHk9IjQxLjQ3MiIKICAgICAgICAgaWQ9InJlY3QyNzYiIC8+CiAgICA8L2NsaXBQYXRoPgogIDwvZGVmcz4KPC9zdmc+Cg==" class="width60 center top6">
<div class="footer"><hr class="hr_bottom"><div class="multi_column"><h6 class="bottom_left">图神经网络导论</h6><h6 class="bottom_center">神经网络</h6><h6 class="bottom_right">tengzhang@hust.edu.cn</h6></div></div>
</section><section vertical="true" data-notes="" lineno="390" class="slide " data-line="390" data-h="4" data-v="2">
<div class="header"><img class="hust" src=""><div class="title"><hr class="hr_top"><h5>Maxout 单元</h5></div></div>
<p>考虑神经网络的第<span class="mathjax-exps">$l$</span>层：</p>
<p>

$$
\begin{align*}
    \zv_l &amp; = \Wv_l \av_{l-1} + \bv_l \\
    \av_l &amp; = h_l (\zv_l)
\end{align*}
$$
</p>

<p>前面提到的激活函数都是<span class="mathjax-exps">$\Rbb \mapsto \Rbb$</span>的，即<span class="mathjax-exps">$[\av_l]_i = h_l ([\zv_l]_i), ~ i \in [n_l]$</span></p>
<br>
<p>Maxout 单元是<span class="mathjax-exps">$\Rbb^{n_l} \mapsto \Rbb$</span>的，输入就是<span class="mathjax-exps">$\zv_l$</span>，其定义为</p>
<p>

$$
\begin{align*}
    \maxout (\zv) = \max_{k \in [K]} \{ \wv_k^\top \zv + b_k \}
\end{align*}
$$
</p>

<ul>
<li>整体学习输入到输出间的非线性关系</li>
<li><span class="mathjax-exps">$\relu(z) = \max \{ 0, z \}$</span>与<span class="mathjax-exps">$\lrelu(z) \overset{\gamma &lt; 1}{=} \max \{ z, \gamma z \}$</span>都是 Maxout 单元的特例</li>
</ul>
<div class="footer"><hr class="hr_bottom"><div class="multi_column"><h6 class="bottom_left">图神经网络导论</h6><h6 class="bottom_center">神经网络</h6><h6 class="bottom_right">tengzhang@hust.edu.cn</h6></div></div>
</section></section><section><section data-notes="" lineno="428" class="slide " data-line="428" data-h="5" data-v="0">
<div class="header"><img class="hust" src=""><div class="title"><hr class="hr_top"><h5>应用到机器学习</h5></div></div>
<p><!--?xml version="1.0" encoding="UTF-8" standalone="no"?-->

<!-- Generated by graphviz version 2.40.1 (20161225.0304)
 -->
<!-- Title: g Pages: 1 -->
<svg width="576pt" height="142pt" viewBox="0.00 0.00 576.26 142.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 138)">
<title>g</title>
<g id="clust1" class="cluster">
<title>cluster_1</title>
<polygon fill="transparent" stroke="#586e75" stroke-dasharray="5,2" points="89.8944,-8 89.8944,-126 497.2624,-126 497.2624,-8 89.8944,-8"></polygon>
<text text-anchor="middle" x="293.5784" y="-109.4" font-family="EBG,fzlz" font-size="14.00" fill="#268bd2">神经网络</text>
</g>
<g id="clust2" class="cluster">
<title>cluster_2</title>
<polygon fill="transparent" stroke="#586e75" stroke-dasharray="5,2" points="97.8944,-16 97.8944,-93 394.5072,-93 394.5072,-16 97.8944,-16"></polygon>
<text text-anchor="middle" x="246.2008" y="-76.4" font-family="EBG,fzlz" font-size="14.00" fill="#268bd2">特征变换</text>
</g>
<!--  原始数据  -->
<g id="node1" class="node">
<title> 原始数据 </title>
<polygon fill="none" stroke="#586e75" points="80.8417,-60 .0527,-60 .0527,-24 80.8417,-24 80.8417,-60"></polygon>
<text text-anchor="middle" x="40.4472" y="-37.2" font-family="EBG,fzlz" font-size="16.00" fill="#b58900"> 原始数据 </text>
</g>
<!-- 底层特征 -->
<g id="node2" class="node">
<title>底层特征</title>
<polygon fill="none" stroke="#586e75" points="180.2019,-60 105.7917,-60 105.7917,-24 180.2019,-24 180.2019,-60"></polygon>
<text text-anchor="middle" x="142.9968" y="-37.2" font-family="EBG,fzlz" font-size="16.00" fill="#b58900">底层特征</text>
</g>
<!--  原始数据 &#45;&gt;底层特征 -->
<g id="edge4" class="edge">
<title> 原始数据 -&gt;底层特征</title>
<path fill="none" stroke="#586e75" d="M80.9775,-42C87.3633,-42 93.9819,-42 100.4126,-42"></path>
<polygon fill="#586e75" stroke="#586e75" points="105.761,-42 100.7611,-44.2501 103.261,-42 100.761,-42.0001 100.761,-42.0001 100.761,-42.0001 103.261,-42 100.761,-39.7501 105.761,-42 105.761,-42"></polygon>
</g>
<!-- 中层特征 -->
<g id="node3" class="node">
<title>中层特征</title>
<polygon fill="none" stroke="#586e75" points="278.7324,-60 205.2212,-60 205.2212,-24 278.7324,-24 278.7324,-60"></polygon>
<text text-anchor="middle" x="241.9768" y="-37.2" font-family="EBG,fzlz" font-size="16.00" fill="#b58900">中层特征</text>
</g>
<!-- 底层特征&#45;&gt;中层特征 -->
<g id="edge1" class="edge">
<title>底层特征-&gt;中层特征</title>
<path fill="none" stroke="#586e75" d="M180.1349,-42C186.4776,-42 193.1094,-42 199.5763,-42"></path>
<polygon fill="#586e75" stroke="#586e75" points="204.9597,-42 199.9598,-44.2501 202.4597,-42 199.9597,-42.0001 199.9597,-42.0001 199.9597,-42.0001 202.4597,-42 199.9597,-39.7501 204.9597,-42 204.9597,-42"></polygon>
</g>
<!-- 高层特征 -->
<g id="node4" class="node">
<title>高层特征</title>
<polygon fill="none" stroke="#586e75" points="386.3343,-60 304.0273,-60 304.0273,-24 386.3343,-24 386.3343,-60"></polygon>
<text text-anchor="middle" x="345.1808" y="-37.2" font-family="EBG,fzlz" font-size="16.00" fill="#b58900">高层特征</text>
</g>
<!-- 中层特征&#45;&gt;高层特征 -->
<g id="edge2" class="edge">
<title>中层特征-&gt;高层特征</title>
<path fill="none" stroke="#586e75" d="M278.9443,-42C285.3969,-42 292.1823,-42 298.8492,-42"></path>
<polygon fill="#586e75" stroke="#586e75" points="303.9168,-42 298.9168,-44.2501 301.4168,-42 298.9168,-42.0001 298.9168,-42.0001 298.9168,-42.0001 301.4168,-42 298.9167,-39.7501 303.9168,-42 303.9168,-42"></polygon>
</g>
<!-- 模型学习 -->
<g id="node5" class="node">
<title>模型学习</title>
<polygon fill="none" stroke="#586e75" points="489.1404,-60 411.6292,-60 411.6292,-24 489.1404,-24 489.1404,-60"></polygon>
<text text-anchor="middle" x="450.3848" y="-37.2" font-family="EBG,fzlz" font-size="16.00" fill="#b58900">模型学习</text>
</g>
<!-- 高层特征&#45;&gt;模型学习 -->
<g id="edge3" class="edge">
<title>高层特征-&gt;模型学习</title>
<path fill="none" stroke="#586e75" d="M386.4583,-42C392.8444,-42 399.4644,-42 405.917,-42"></path>
<polygon fill="#586e75" stroke="#586e75" points="411.289,-42 406.289,-44.2501 408.789,-42 406.289,-42.0001 406.289,-42.0001 406.289,-42.0001 408.789,-42 406.2889,-39.7501 411.289,-42 411.289,-42"></polygon>
</g>
<!-- 预测 -->
<g id="node6" class="node">
<title>预测</title>
<polygon fill="none" stroke="#586e75" points="568.2624,-60 514.2624,-60 514.2624,-24 568.2624,-24 568.2624,-60"></polygon>
<text text-anchor="middle" x="541.2624" y="-37.2" font-family="EBG,fzlz" font-size="16.00" fill="#b58900">预测</text>
</g>
<!-- 模型学习&#45;&gt;预测 -->
<g id="edge5" class="edge">
<title>模型学习-&gt;预测</title>
<path fill="none" stroke="#586e75" d="M489.1887,-42C495.7467,-42 502.4931,-42 508.8656,-42"></path>
<polygon fill="#586e75" stroke="#586e75" points="514.1183,-42 509.1183,-44.2501 511.6183,-42 509.1183,-42.0001 509.1183,-42.0001 509.1183,-42.0001 511.6183,-42 509.1182,-39.7501 514.1183,-42 514.1183,-42"></polygon>
</g>
</g>
</svg>
</p><div></div>
<p>前<span class="mathjax-exps">$L-1$</span>层是复合函数<span class="mathjax-exps">$\psi: \Rbb^d \mapsto \Rbb^{n_{L-1}}$</span>，可以看作一种特征变换方法</p>
<br>
<p>最后一层是学习器<span class="mathjax-exps">$\hat{\yv} = g(\psi(\xv); \Wv_L, \bv_L)$</span>，对输入<span class="mathjax-exps">$\psi(\xv)$</span>进行预测</p>
<ul>
<li>若<span class="mathjax-exps">$y \in \{ \pm 1 \}$</span>，最后一层只需<span class="mathjax-exps">$1$</span>个神经元，并采用 Logistic 激活函数</li>
<li>若<span class="mathjax-exps">$y \in [C]$</span>，最后一层需<span class="mathjax-exps">$C$</span>个神经元，并采用 Softmax 激活函数</li>
</ul>
<br>
<p>因此对数几率回归也可看作只有一层 (没有隐藏层) 的神经网络</p>
<div class="footer"><hr class="hr_bottom"><div class="multi_column"><h6 class="bottom_left">图神经网络导论</h6><h6 class="bottom_center">神经网络</h6><h6 class="bottom_right">tengzhang@hust.edu.cn</h6></div></div>
</section><section vertical="true" data-notes="" lineno="451" class="slide " data-line="451" data-h="5" data-v="1">
<div class="header"><img class="hust" src=""><div class="title"><hr class="hr_top"><h5>深度学习</h5></div></div>
<p>传统机器学习：特征处理和学习两阶段分开进行</p>
<p><!--?xml version="1.0" encoding="UTF-8" standalone="no"?-->

<!-- Generated by graphviz version 2.40.1 (20161225.0304)
 -->
<!-- Title: g Pages: 1 -->
<svg width="582pt" height="101pt" viewBox="0.00 0.00 581.63 101.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 97)">
<title>g</title>
<g id="clust1" class="cluster">
<title>cluster_1</title>
<polygon fill="transparent" stroke="#586e75" stroke-dasharray="5,2" points="97.8944,-8 97.8944,-85 399.872,-85 399.872,-8 97.8944,-8"></polygon>
<text text-anchor="middle" x="248.8832" y="-68.4" font-family="EBG,fzlz" font-size="14.00" fill="#dc322f">特征工程</text>
</g>
<!--  原始数据  -->
<g id="node1" class="node">
<title> 原始数据 </title>
<polygon fill="none" stroke="#586e75" points="80.8417,-52 .0527,-52 .0527,-16 80.8417,-16 80.8417,-52"></polygon>
<text text-anchor="middle" x="40.4472" y="-29.2" font-family="EBG,fzlz" font-size="16.00" fill="#b58900"> 原始数据 </text>
</g>
<!--  &#160;特征提取 &#160; -->
<g id="node2" class="node">
<title> &nbsp;特征提取 &nbsp;</title>
<polygon fill="none" stroke="#586e75" points="189.0481,-52 105.8431,-52 105.8431,-16 189.0481,-16 189.0481,-52"></polygon>
<text text-anchor="middle" x="147.4456" y="-29.2" font-family="EBG,fzlz" font-size="16.00" fill="#b58900"> &nbsp;特征提取 &nbsp;</text>
</g>
<!--  原始数据 &#45;&gt; &#160;特征提取 &#160; -->
<g id="edge1" class="edge">
<title> 原始数据 -&gt; &nbsp;特征提取 &nbsp;</title>
<path fill="none" stroke="#586e75" d="M80.8987,-34C87.4066,-34 94.1889,-34 100.8274,-34"></path>
<polygon fill="#586e75" stroke="#586e75" points="105.869,-34 100.8691,-36.2501 103.369,-34 100.869,-34.0001 100.869,-34.0001 100.869,-34.0001 103.369,-34 100.869,-31.7501 105.869,-34 105.869,-34"></polygon>
</g>
<!--  &#160;特征处理 &#160; -->
<g id="node3" class="node">
<title> &nbsp;特征处理 &nbsp;</title>
<polygon fill="none" stroke="#586e75" points="295.6563,-52 214.1101,-52 214.1101,-16 295.6563,-16 295.6563,-52"></polygon>
<text text-anchor="middle" x="254.8832" y="-29.2" font-family="EBG,fzlz" font-size="16.00" fill="#b58900"> &nbsp;特征处理 &nbsp;</text>
</g>
<!--  &#160;特征提取 &#160;&#45;&gt; &#160;特征处理 &#160; -->
<g id="edge2" class="edge">
<title> &nbsp;特征提取 &nbsp;-&gt; &nbsp;特征处理 &nbsp;</title>
<path fill="none" stroke="#586e75" d="M189.2914,-34C195.6437,-34 202.2291,-34 208.6678,-34"></path>
<polygon fill="#586e75" stroke="#586e75" points="214.0334,-34 209.0335,-36.2501 211.5334,-34 209.0334,-34.0001 209.0334,-34.0001 209.0334,-34.0001 211.5334,-34 209.0334,-31.7501 214.0334,-34 214.0334,-34"></polygon>
</g>
<!-- 特征变换 -->
<g id="node4" class="node">
<title>特征变换</title>
<polygon fill="none" stroke="#586e75" points="391.9233,-52 320.7183,-52 320.7183,-16 391.9233,-16 391.9233,-52"></polygon>
<text text-anchor="middle" x="356.3208" y="-29.2" font-family="EBG,fzlz" font-size="16.00" fill="#b58900">特征变换</text>
</g>
<!--  &#160;特征处理 &#160;&#45;&gt;特征变换 -->
<g id="edge3" class="edge">
<title> &nbsp;特征处理 &nbsp;-&gt;特征变换</title>
<path fill="none" stroke="#586e75" d="M295.8494,-34C302.293,-34 308.9549,-34 315.3975,-34"></path>
<polygon fill="#586e75" stroke="#586e75" points="320.7482,-34 315.7483,-36.2501 318.2482,-34 315.7482,-34.0001 315.7482,-34.0001 315.7482,-34.0001 318.2482,-34 315.7482,-31.7501 320.7482,-34 320.7482,-34"></polygon>
</g>
<!-- 模型学习 -->
<g id="node5" class="node">
<title>模型学习</title>
<polygon fill="none" stroke="#586e75" points="494.5052,-52 416.994,-52 416.994,-16 494.5052,-16 494.5052,-52"></polygon>
<text text-anchor="middle" x="455.7496" y="-29.2" font-family="EBG,fzlz" font-size="16.00" fill="#b58900">模型学习</text>
</g>
<!-- 特征变换&#45;&gt;模型学习 -->
<g id="edge4" class="edge">
<title>特征变换-&gt;模型学习</title>
<path fill="none" stroke="#586e75" d="M391.936,-34C398.3302,-34 405.0636,-34 411.663,-34"></path>
<polygon fill="#586e75" stroke="#586e75" points="416.6757,-34 411.6757,-36.2501 414.1757,-34 411.6757,-34.0001 411.6757,-34.0001 411.6757,-34.0001 414.1757,-34 411.6756,-31.7501 416.6757,-34 416.6757,-34"></polygon>
</g>
<!-- 预测 -->
<g id="node6" class="node">
<title>预测</title>
<polygon fill="none" stroke="#586e75" points="573.6272,-52 519.6272,-52 519.6272,-16 573.6272,-16 573.6272,-52"></polygon>
<text text-anchor="middle" x="546.6272" y="-29.2" font-family="EBG,fzlz" font-size="16.00" fill="#b58900">预测</text>
</g>
<!-- 模型学习&#45;&gt;预测 -->
<g id="edge5" class="edge">
<title>模型学习-&gt;预测</title>
<path fill="none" stroke="#586e75" d="M494.5535,-34C501.1115,-34 507.8579,-34 514.2304,-34"></path>
<polygon fill="#586e75" stroke="#586e75" points="519.4831,-34 514.4831,-36.2501 516.9831,-34 514.4831,-34.0001 514.4831,-34.0001 514.4831,-34.0001 516.9831,-34 514.483,-31.7501 519.4831,-34 519.4831,-34"></polygon>
</g>
</g>
</svg>
</p><br>
<p>深度学习：特征工程和模型学习合二为一，端到端 (end-to-end)</p>
<p><!--?xml version="1.0" encoding="UTF-8" standalone="no"?-->

<!-- Generated by graphviz version 2.40.1 (20161225.0304)
 -->
<!-- Title: g Pages: 1 -->
<svg width="576pt" height="142pt" viewBox="0.00 0.00 576.26 142.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 138)">
<title>g</title>
<g id="clust1" class="cluster">
<title>cluster_1</title>
<polygon fill="transparent" stroke="#586e75" stroke-dasharray="5,2" points="89.8944,-8 89.8944,-126 497.2624,-126 497.2624,-8 89.8944,-8"></polygon>
<text text-anchor="middle" x="293.5784" y="-109.4" font-family="EBG,fzlz" font-size="14.00" fill="#268bd2">神经网络</text>
</g>
<g id="clust2" class="cluster">
<title>cluster_2</title>
<polygon fill="transparent" stroke="#586e75" stroke-dasharray="5,2" points="97.8944,-16 97.8944,-93 394.5072,-93 394.5072,-16 97.8944,-16"></polygon>
<text text-anchor="middle" x="246.2008" y="-76.4" font-family="EBG,fzlz" font-size="14.00" fill="#268bd2">特征变换</text>
</g>
<!--  原始数据  -->
<g id="node1" class="node">
<title> 原始数据 </title>
<polygon fill="none" stroke="#586e75" points="80.8417,-60 .0527,-60 .0527,-24 80.8417,-24 80.8417,-60"></polygon>
<text text-anchor="middle" x="40.4472" y="-37.2" font-family="EBG,fzlz" font-size="16.00" fill="#b58900"> 原始数据 </text>
</g>
<!-- 底层特征 -->
<g id="node2" class="node">
<title>底层特征</title>
<polygon fill="none" stroke="#586e75" points="180.2019,-60 105.7917,-60 105.7917,-24 180.2019,-24 180.2019,-60"></polygon>
<text text-anchor="middle" x="142.9968" y="-37.2" font-family="EBG,fzlz" font-size="16.00" fill="#b58900">底层特征</text>
</g>
<!--  原始数据 &#45;&gt;底层特征 -->
<g id="edge4" class="edge">
<title> 原始数据 -&gt;底层特征</title>
<path fill="none" stroke="#586e75" d="M80.9775,-42C87.3633,-42 93.9819,-42 100.4126,-42"></path>
<polygon fill="#586e75" stroke="#586e75" points="105.761,-42 100.7611,-44.2501 103.261,-42 100.761,-42.0001 100.761,-42.0001 100.761,-42.0001 103.261,-42 100.761,-39.7501 105.761,-42 105.761,-42"></polygon>
</g>
<!-- 中层特征 -->
<g id="node3" class="node">
<title>中层特征</title>
<polygon fill="none" stroke="#586e75" points="278.7324,-60 205.2212,-60 205.2212,-24 278.7324,-24 278.7324,-60"></polygon>
<text text-anchor="middle" x="241.9768" y="-37.2" font-family="EBG,fzlz" font-size="16.00" fill="#b58900">中层特征</text>
</g>
<!-- 底层特征&#45;&gt;中层特征 -->
<g id="edge1" class="edge">
<title>底层特征-&gt;中层特征</title>
<path fill="none" stroke="#586e75" d="M180.1349,-42C186.4776,-42 193.1094,-42 199.5763,-42"></path>
<polygon fill="#586e75" stroke="#586e75" points="204.9597,-42 199.9598,-44.2501 202.4597,-42 199.9597,-42.0001 199.9597,-42.0001 199.9597,-42.0001 202.4597,-42 199.9597,-39.7501 204.9597,-42 204.9597,-42"></polygon>
</g>
<!-- 高层特征 -->
<g id="node4" class="node">
<title>高层特征</title>
<polygon fill="none" stroke="#586e75" points="386.3343,-60 304.0273,-60 304.0273,-24 386.3343,-24 386.3343,-60"></polygon>
<text text-anchor="middle" x="345.1808" y="-37.2" font-family="EBG,fzlz" font-size="16.00" fill="#b58900">高层特征</text>
</g>
<!-- 中层特征&#45;&gt;高层特征 -->
<g id="edge2" class="edge">
<title>中层特征-&gt;高层特征</title>
<path fill="none" stroke="#586e75" d="M278.9443,-42C285.3969,-42 292.1823,-42 298.8492,-42"></path>
<polygon fill="#586e75" stroke="#586e75" points="303.9168,-42 298.9168,-44.2501 301.4168,-42 298.9168,-42.0001 298.9168,-42.0001 298.9168,-42.0001 301.4168,-42 298.9167,-39.7501 303.9168,-42 303.9168,-42"></polygon>
</g>
<!-- 模型学习 -->
<g id="node5" class="node">
<title>模型学习</title>
<polygon fill="none" stroke="#586e75" points="489.1404,-60 411.6292,-60 411.6292,-24 489.1404,-24 489.1404,-60"></polygon>
<text text-anchor="middle" x="450.3848" y="-37.2" font-family="EBG,fzlz" font-size="16.00" fill="#b58900">模型学习</text>
</g>
<!-- 高层特征&#45;&gt;模型学习 -->
<g id="edge3" class="edge">
<title>高层特征-&gt;模型学习</title>
<path fill="none" stroke="#586e75" d="M386.4583,-42C392.8444,-42 399.4644,-42 405.917,-42"></path>
<polygon fill="#586e75" stroke="#586e75" points="411.289,-42 406.289,-44.2501 408.789,-42 406.289,-42.0001 406.289,-42.0001 406.289,-42.0001 408.789,-42 406.2889,-39.7501 411.289,-42 411.289,-42"></polygon>
</g>
<!-- 预测 -->
<g id="node6" class="node">
<title>预测</title>
<polygon fill="none" stroke="#586e75" points="568.2624,-60 514.2624,-60 514.2624,-24 568.2624,-24 568.2624,-60"></polygon>
<text text-anchor="middle" x="541.2624" y="-37.2" font-family="EBG,fzlz" font-size="16.00" fill="#b58900">预测</text>
</g>
<!-- 模型学习&#45;&gt;预测 -->
<g id="edge5" class="edge">
<title>模型学习-&gt;预测</title>
<path fill="none" stroke="#586e75" d="M489.1887,-42C495.7467,-42 502.4931,-42 508.8656,-42"></path>
<polygon fill="#586e75" stroke="#586e75" points="514.1183,-42 509.1183,-44.2501 511.6183,-42 509.1183,-42.0001 509.1183,-42.0001 509.1183,-42.0001 511.6183,-42 509.1182,-39.7501 514.1183,-42 514.1183,-42"></polygon>
</g>
</g>
</svg>
</p><div class="footer"><hr class="hr_bottom"><div class="multi_column"><h6 class="bottom_left">图神经网络导论</h6><h6 class="bottom_center">神经网络</h6><h6 class="bottom_right">tengzhang@hust.edu.cn</h6></div></div>
</section><section vertical="true" data-notes="" lineno="467" class="slide " data-line="467" data-h="5" data-v="2">
<div class="header"><img class="hust" src=""><div class="title"><hr class="hr_top"><h5>用 tensorflow 实现</h5></div></div>
<pre data-role="codeBlock" data-info="python {.line-numbers}" class="language-python line-numbers"><span class="token keyword">from</span> sklearn<span class="token punctuation">.</span>datasets <span class="token keyword">import</span> load_breast_cancer
<span class="token keyword">from</span> sklearn<span class="token punctuation">.</span>model_selection <span class="token keyword">import</span> train_test_split
<span class="token keyword">from</span> tensorflow<span class="token punctuation">.</span>keras<span class="token punctuation">.</span>layers <span class="token keyword">import</span> Dense
<span class="token keyword">from</span> tensorflow<span class="token punctuation">.</span>keras<span class="token punctuation">.</span>models <span class="token keyword">import</span> Sequential
<span class="token keyword">from</span> tensorflow<span class="token punctuation">.</span>keras<span class="token punctuation">.</span>optimizers <span class="token keyword">import</span> SGD

X<span class="token punctuation">,</span> y <span class="token operator">=</span> load_breast_cancer<span class="token punctuation">(</span>return_X_y<span class="token operator">=</span><span class="token boolean">True</span><span class="token punctuation">)</span>
X_train<span class="token punctuation">,</span> X_test<span class="token punctuation">,</span> y_train<span class="token punctuation">,</span> y_test <span class="token operator">=</span> train_test_split<span class="token punctuation">(</span>X<span class="token punctuation">,</span> y<span class="token punctuation">,</span> random_state<span class="token operator">=</span><span class="token number">0</span><span class="token punctuation">)</span>

model <span class="token operator">=</span> Sequential<span class="token punctuation">(</span><span class="token punctuation">)</span>
model<span class="token punctuation">.</span>add<span class="token punctuation">(</span>Dense<span class="token punctuation">(</span><span class="token number">64</span><span class="token punctuation">,</span> activation<span class="token operator">=</span><span class="token string">"relu"</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
model<span class="token punctuation">.</span>add<span class="token punctuation">(</span>Dense<span class="token punctuation">(</span><span class="token number">64</span><span class="token punctuation">,</span> activation<span class="token operator">=</span><span class="token string">"relu"</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
model<span class="token punctuation">.</span>add<span class="token punctuation">(</span>Dense<span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">,</span> activation<span class="token operator">=</span><span class="token string">"sigmoid"</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
model<span class="token punctuation">.</span><span class="token builtin">compile</span><span class="token punctuation">(</span>optimizer<span class="token operator">=</span>SGD<span class="token punctuation">(</span><span class="token number">0.001</span><span class="token punctuation">)</span><span class="token punctuation">,</span>
              loss<span class="token operator">=</span><span class="token string">"binary_crossentropy"</span><span class="token punctuation">,</span>
              metrics<span class="token operator">=</span><span class="token punctuation">[</span><span class="token string">"accuracy"</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
              <span class="token punctuation">)</span>

model<span class="token punctuation">.</span>fit<span class="token punctuation">(</span>X_train<span class="token punctuation">,</span> y_train<span class="token punctuation">,</span> epochs<span class="token operator">=</span><span class="token number">10</span><span class="token punctuation">)</span>
model<span class="token punctuation">.</span>evaluate<span class="token punctuation">(</span>X_test<span class="token punctuation">,</span> y_test<span class="token punctuation">,</span> verbose<span class="token operator">=</span><span class="token number">2</span><span class="token punctuation">)</span>

Epoch <span class="token number">1</span><span class="token operator">/</span><span class="token number">10</span>
<span class="token number">14</span><span class="token operator">/</span><span class="token number">14</span> <span class="token punctuation">[</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token punctuation">]</span> <span class="token operator">-</span> 1s 1ms<span class="token operator">/</span>step <span class="token operator">-</span> loss<span class="token punctuation">:</span> <span class="token number">51.0188</span> <span class="token operator">-</span> accuracy<span class="token punctuation">:</span> <span class="token number">0.4906</span>
Epoch <span class="token number">2</span><span class="token operator">/</span><span class="token number">10</span>
<span class="token number">14</span><span class="token operator">/</span><span class="token number">14</span> <span class="token punctuation">[</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token punctuation">]</span> <span class="token operator">-</span> 0s 1ms<span class="token operator">/</span>step <span class="token operator">-</span> loss<span class="token punctuation">:</span> <span class="token number">1.0154</span> <span class="token operator">-</span> accuracy<span class="token punctuation">:</span> <span class="token number">0.7465</span>
Epoch <span class="token number">3</span><span class="token operator">/</span><span class="token number">10</span>
<span class="token number">14</span><span class="token operator">/</span><span class="token number">14</span> <span class="token punctuation">[</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token punctuation">]</span> <span class="token operator">-</span> 0s 1ms<span class="token operator">/</span>step <span class="token operator">-</span> loss<span class="token punctuation">:</span> <span class="token number">0.5027</span> <span class="token operator">-</span> accuracy<span class="token punctuation">:</span> <span class="token number">0.8146</span>
Epoch <span class="token number">4</span><span class="token operator">/</span><span class="token number">10</span>
<span class="token number">14</span><span class="token operator">/</span><span class="token number">14</span> <span class="token punctuation">[</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token punctuation">]</span> <span class="token operator">-</span> 0s 1ms<span class="token operator">/</span>step <span class="token operator">-</span> loss<span class="token punctuation">:</span> <span class="token number">0.4219</span> <span class="token operator">-</span> accuracy<span class="token punctuation">:</span> <span class="token number">0.8239</span>
Epoch <span class="token number">5</span><span class="token operator">/</span><span class="token number">10</span>
<span class="token number">14</span><span class="token operator">/</span><span class="token number">14</span> <span class="token punctuation">[</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token punctuation">]</span> <span class="token operator">-</span> 0s 1ms<span class="token operator">/</span>step <span class="token operator">-</span> loss<span class="token punctuation">:</span> <span class="token number">0.4142</span> <span class="token operator">-</span> accuracy<span class="token punctuation">:</span> <span class="token number">0.8380</span>
Epoch <span class="token number">6</span><span class="token operator">/</span><span class="token number">10</span>
<span class="token number">14</span><span class="token operator">/</span><span class="token number">14</span> <span class="token punctuation">[</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token punctuation">]</span> <span class="token operator">-</span> 0s 1ms<span class="token operator">/</span>step <span class="token operator">-</span> loss<span class="token punctuation">:</span> <span class="token number">0.3101</span> <span class="token operator">-</span> accuracy<span class="token punctuation">:</span> <span class="token number">0.8779</span>
Epoch <span class="token number">7</span><span class="token operator">/</span><span class="token number">10</span>
<span class="token number">14</span><span class="token operator">/</span><span class="token number">14</span> <span class="token punctuation">[</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token punctuation">]</span> <span class="token operator">-</span> 0s 1ms<span class="token operator">/</span>step <span class="token operator">-</span> loss<span class="token punctuation">:</span> <span class="token number">0.2744</span> <span class="token operator">-</span> accuracy<span class="token punctuation">:</span> <span class="token number">0.8944</span>
Epoch <span class="token number">8</span><span class="token operator">/</span><span class="token number">10</span>
<span class="token number">14</span><span class="token operator">/</span><span class="token number">14</span> <span class="token punctuation">[</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token punctuation">]</span> <span class="token operator">-</span> 0s 1ms<span class="token operator">/</span>step <span class="token operator">-</span> loss<span class="token punctuation">:</span> <span class="token number">0.2454</span> <span class="token operator">-</span> accuracy<span class="token punctuation">:</span> <span class="token number">0.9061</span>
Epoch <span class="token number">9</span><span class="token operator">/</span><span class="token number">10</span>
<span class="token number">14</span><span class="token operator">/</span><span class="token number">14</span> <span class="token punctuation">[</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token punctuation">]</span> <span class="token operator">-</span> 0s 1ms<span class="token operator">/</span>step <span class="token operator">-</span> loss<span class="token punctuation">:</span> <span class="token number">0.3001</span> <span class="token operator">-</span> accuracy<span class="token punctuation">:</span> <span class="token number">0.8897</span>
Epoch <span class="token number">10</span><span class="token operator">/</span><span class="token number">10</span>
<span class="token number">14</span><span class="token operator">/</span><span class="token number">14</span> <span class="token punctuation">[</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token punctuation">]</span> <span class="token operator">-</span> 0s 1ms<span class="token operator">/</span>step <span class="token operator">-</span> loss<span class="token punctuation">:</span> <span class="token number">0.2557</span> <span class="token operator">-</span> accuracy<span class="token punctuation">:</span> <span class="token number">0.8991</span>

<span class="token number">5</span><span class="token operator">/</span><span class="token number">5</span> <span class="token operator">-</span> 0s <span class="token operator">-</span> loss<span class="token punctuation">:</span> <span class="token number">0.2264</span> <span class="token operator">-</span> accuracy<span class="token punctuation">:</span> <span class="token number">0.9231</span>
<span aria-hidden="true" class="line-numbers-rows"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></pre><div class="footer"><hr class="hr_bottom"><div class="multi_column"><h6 class="bottom_left">图神经网络导论</h6><h6 class="bottom_center">神经网络</h6><h6 class="bottom_right">tengzhang@hust.edu.cn</h6></div></div>
</section></section><section data-notes="" lineno="519" class="slide " data-line="519" data-h="6" data-v="0">
<div class="header"><img class="hust" src=""><div class="title"><hr class="hr_top"><h5>求解参数</h5></div></div>
<p>设采用交叉熵损失，对样本<span class="mathjax-exps">$(\xv, y)$</span>，损失函数为<span class="mathjax-exps">$\Lcal (\yv, \hat{\yv}) = - \yv \log \hat{\yv}$</span></p>
<br>
<p>优化目标为</p>
<p>

$$
\begin{align*}
    \min_{\Wv, \bv} ~ \frac{1}{2} \| \Wv \|_F^2 + \frac{\lambda}{m} \sum_{i \in [m]} \Lcal (\yv_i, \hat{\yv}_i)
\end{align*}
$$
</p>

<br>
<p>梯度下降 (标量对某矩阵求导的结果的尺寸与该矩阵呈转置关系)</p>
<p>

$$
\begin{align*}
    \Wv &amp; ~ \leftarrow ~ \Wv - \eta \left( \frac{\lambda}{m} \sum_{i \in [m]} \class{yellow}{\frac{\partial \Lcal (\yv_i, \hat{\yv}_i)}{\partial \Wv^\top}} + \Wv \right) \\
    \bv &amp; ~ \leftarrow ~ \bv - \eta \cdot \frac{\lambda}{m} \sum_{i \in [m]} \class{yellow}{\frac{\partial \Lcal (\yv_i, \hat{\yv}_i)}{\partial \bv^\top}}
\end{align*}
$$
</p>

<div class="footer"><hr class="hr_bottom"><div class="multi_column"><h6 class="bottom_left">图神经网络导论</h6><h6 class="bottom_center">神经网络</h6><h6 class="bottom_right">tengzhang@hust.edu.cn</h6></div></div>
</section><section><section data-notes="" lineno="556" class="slide " data-line="556" data-h="7" data-v="0">
<div class="header"><img class="hust" src=""><div class="title"><hr class="hr_top"><h5>求解参数</h5></div></div>
<p>整个网络：<span class="mathjax-exps">$\xv = \av_0 \xrightarrow{\Wv_1,\bv_1} \zv_1 \xrightarrow{h_1} \av_1 \xrightarrow{\Wv_2,\bv_2} \cdots \xrightarrow{\Wv_L,\bv_L} \zv_L \xrightarrow{h_L} \av_L = \hat{\yv}$</span></p>
<br>
<p>损失<span class="mathjax-exps">$\Lcal (\yv, \hat{\yv})$</span>的计算为<span class="blue">正向传播</span></p>
<ul>
<li>样本从输入层进入，经隐藏层逐层传播到最后输出层</li>
<li><span class="mathjax-exps">$\hat{\yv} = \av_L = h_L (\zv_L)$</span>是对样本<span class="mathjax-exps">$\xv$</span>的预测，据此计算<span class="mathjax-exps">$\Lcal (\yv, \hat{\yv}) = \Lcal (\yv, h_L (\zv_L))$</span></li>
</ul>
<br>
<p>先看最后一层<span class="mathjax-exps">$\zv_L = \Wv_L ~ \av_{L-1} + \bv_L$</span>，<span class="mathjax-exps">$\av_L = h_L (\zv_L)$</span>，由<span class="blue">链式法则</span> (?) 有</p>
<p>

$$
\begin{align*}
    \frac{\partial \Lcal (\yv, \hat{\yv})}{\partial \bv_L} &amp; = \frac{\partial \Lcal (\yv, \hat{\yv})}{\partial \zv_L} \frac{\partial \zv_L}{\partial \bv_L} = \deltav_L^\top \frac{\partial \zv_L}{\partial \bv_L} \\
    \frac{\partial \Lcal (\yv, \hat{\yv})}{\partial \Wv_L} &amp; = \sum_{j \in [n_L]} \frac{\partial \Lcal (\yv, \hat{\yv})}{\partial [\zv_L]_j} \frac{\partial [\zv_L]_j}{\partial \Wv_L} = \sum_{j \in [n_L]} [\deltav_L]_j \frac{\partial [\zv_L]_j}{\partial \Wv_L}
\end{align*}
$$
</p>

<p>其中<span class="mathjax-exps">$\deltav_L^\top = \partial \Lcal (\yv, \hat{\yv}) / \partial \zv_L \in \Rbb^{n_L}$</span>为第<span class="mathjax-exps">$L$</span>层的<span class="blue">误差项</span>，该项可直接求解</p>
<div class="footer"><hr class="hr_bottom"><div class="multi_column"><h6 class="bottom_left">图神经网络导论</h6><h6 class="bottom_center">神经网络</h6><h6 class="bottom_right">tengzhang@hust.edu.cn</h6></div></div>
</section><section vertical="true" data-notes="" lineno="588" class="slide " data-line="588" data-h="7" data-v="1">
<div class="header"><img class="hust" src=""><div class="title"><hr class="hr_top"><h5>求解参数 反向传播</h5></div></div>
<p>整个网络：<span class="mathjax-exps">$\xv = \av_0 \xrightarrow{\Wv_1,\bv_1} \zv_1 \xrightarrow{h_1} \av_1 \xrightarrow{\Wv_2,\bv_2} \cdots \xrightarrow{\Wv_L,\bv_L} \zv_L \xrightarrow{h_L} \av_L = \hat{\yv}$</span></p>
<br>
<p>类似的对第<span class="mathjax-exps">$l$</span>层<span class="mathjax-exps">$\zv_l = \Wv_l \av_{l-1} + \bv_l$</span>，<span class="mathjax-exps">$\av_l = h_l (\zv_l)$</span>，由<span class="blue">链式法则</span> (?) 有</p>
<p>

$$
\begin{align*}
    \frac{\partial \Lcal (\yv, \hat{\yv})}{\partial \bv_l} = \deltav_l^\top \frac{\partial \zv_l}{\partial \bv_l}, \quad \frac{\partial \Lcal (\yv, \hat{\yv})}{\partial \Wv_l} = \sum_{j \in [n_l]} [\deltav_l]_j \frac{\partial [\zv_l]_j}{\partial \Wv_l}
\end{align*}
$$
</p>

<p>其中<span class="mathjax-exps">$\deltav_l^\top = \partial \Lcal (\yv, \hat{\yv}) / \partial \zv_l \in \Rbb^{n_l}$</span>为第<span class="mathjax-exps">$l$</span>层的<span class="blue">误差项</span></p>
<br>
<p>误差<span class="blue">反向传播</span> (<strong>b</strong>ack<strong>p</strong>ropagation, BP)：前一层的误差可由后一层得到</p>
<p>

$$
\begin{align*}
    \deltav_{l-1}^\top = \frac{\partial \Lcal (\yv, \hat{\yv})}{\partial \zv_{l-1}} = \frac{\partial \Lcal (\yv, \hat{\yv})}{\partial \zv_l} \frac{\partial \zv_l}{\partial \av_{l-1}} \frac{\partial \av_{l-1}}{\partial \zv_{l-1}} = \deltav_l^\top \frac{\partial \zv_l}{\partial \av_{l-1}} \frac{\partial h_{l-1}(\zv_{l-1})}{\partial \zv_{l-1}}
\end{align*}
$$
</p>

<p>对第<span class="mathjax-exps">$l$</span>层<span class="mathjax-exps">$\zv_l = \Wv_l \av_{l-1} + \bv_l$</span>，如何求<span class="mathjax-exps">$\partial \zv_l / \partial \av_{l-1}$</span>、<span class="mathjax-exps">$\partial \zv_l / \partial \bv_l$</span>、<span class="mathjax-exps">$\partial [\zv_l]_j / \partial \Wv_l$</span></p>
<div class="footer"><hr class="hr_bottom"><div class="multi_column"><h6 class="bottom_left">图神经网络导论</h6><h6 class="bottom_center">神经网络</h6><h6 class="bottom_right">tengzhang@hust.edu.cn</h6></div></div>
</section><section vertical="true" data-notes="" lineno="628" class="slide " data-line="628" data-h="7" data-v="2">
<div class="header"><img class="hust" src=""><div class="title"><hr class="hr_top"><h5>求解参数 反向传播</h5></div></div>
<p>对<span class="mathjax-exps">$\zv = \Wv \av + \bv$</span>，如何求<span class="mathjax-exps">$\partial \zv / \partial \av$</span>、<span class="mathjax-exps">$\partial \zv / \partial \bv$</span>、<span class="mathjax-exps">$\partial z_j / \partial \Wv$</span></p>
<p>由矩阵求导公式易知</p>
<p>

$$
\begin{align*}
    \frac{\partial \zv}{\partial \av} = \frac{\partial (\Wv \av)}{\partial \av} = \Wv, \quad \frac{\partial \zv}{\partial \bv} = \frac{\partial \bv}{\partial \bv} = \Iv
\end{align*}
$$
</p>

<p>注意<span class="mathjax-exps">$z_j = \sum_k w_{jk} a_k + b_k$</span>只与<span class="mathjax-exps">$\Wv$</span>的第<span class="mathjax-exps">$j$</span>行有关，于是</p>
<p>

$$
\begin{align*}
    \frac{\partial z_j}{\partial \Wv} = \underbrace{\begin{bmatrix} \zerov, \ldots, \av, \ldots, \zerov \end{bmatrix}}_{\text{only }\av\text{ at }j\text{-th column}} = \av \ev_j^\top
\end{align*}
$$
</p>

<p>从而</p>
<p>

$$
\begin{align*}
    \frac{\partial \Lcal (\yv, \hat{\yv})}{\partial \Wv_l} = \sum_{j \in [n_l]} [\deltav_l]_j \frac{\partial [\zv_l]_j}{\partial \Wv_l} = \av_{l-1} \sum_{j \in [n_l]} [\deltav_l]_j \ev_j^\top = \av_{l-1} \deltav_l^\top
\end{align*}
$$
</p>

<div class="footer"><hr class="hr_bottom"><div class="multi_column"><h6 class="bottom_left">图神经网络导论</h6><h6 class="bottom_center">神经网络</h6><h6 class="bottom_right">tengzhang@hust.edu.cn</h6></div></div>
</section><section vertical="true" data-notes="" lineno="672" class="slide " data-line="672" data-h="7" data-v="3">
<div class="header"><img class="hust" src=""><div class="title"><hr class="hr_top"><h5>反向传播算法</h5></div></div>
<p>输入：训练集<span class="mathjax-exps">$\Scal$</span>，验证集<span class="mathjax-exps">$\Vcal$</span>，以及相关超参数</p>
<ol>
<li>随机初始化<span class="mathjax-exps">$\Wv$</span>和<span class="mathjax-exps">$\bv$</span></li>
<li>repeat</li>
<li>  对训练集<span class="mathjax-exps">$\Scal$</span>中的样本随机重排序</li>
<li>  for <span class="mathjax-exps">$i = 1, \ldots, m$</span> do</li>
<li>    获取样本<span class="mathjax-exps">$(\xv_i, y_i)$</span></li>
<li>    前向传播，计算每一层的<span class="mathjax-exps">$\zv_l = \Wv_l \av_{l-1} + \bv_l$</span>，直到最后一层</li>
<li>    反向传播计算每一层的误差项<span class="mathjax-exps">$\deltav_l^\top = \deltav_{l+1}^\top \Wv_{l+1} \diag (h_l'(\zv_l))$</span></li>
<li>    计算梯度<span class="mathjax-exps">$\partial \Lcal / \partial \Wv_l = \av_{l-1} \deltav_l^\top$</span>、<span class="mathjax-exps">$\partial \Lcal / \partial \bv_l = \deltav_l^\top$</span></li>
<li>    采用梯度下降更新<span class="mathjax-exps">$\Wv_l$</span>和<span class="mathjax-exps">$\bv_l$</span></li>
<li>  end</li>
<li>until 神经网络模型在验证集<span class="mathjax-exps">$\Vcal$</span>上的错误率不再下降</li>
</ol>
<p>输出：<span class="mathjax-exps">$\Wv$</span>和<span class="mathjax-exps">$\bv$</span></p>
<div class="footer"><hr class="hr_bottom"><div class="multi_column"><h6 class="bottom_left">图神经网络导论</h6><h6 class="bottom_center">神经网络</h6><h6 class="bottom_right">tengzhang@hust.edu.cn</h6></div></div>
</section></section><section><section data-notes="" lineno="694" class="slide " data-line="694" data-h="8" data-v="0">
<div class="header"><img class="hust" src=""><div class="title"><hr class="hr_top"><h5>梯度消失</h5></div></div>
<p>神经网络中误差反向传播的迭代公式为</p>
<p>

$$
\begin{align*}
    \deltav_l^\top = \frac{\partial \Lcal (\yv, \hat{\yv})}{\partial \zv_l} = \frac{\partial \Lcal (\yv, \hat{\yv})}{\partial \zv_{l+1}} \frac{\partial \zv_{l+1}}{\partial \av_l} \frac{\partial \av_l}{\partial \zv_l} = \deltav_{l+1}^\top \Wv_{l+1} \diag (h_l'(\zv_l))
\end{align*}
$$
</p>

<br>
<p>对于 Sigmoid 型激活函数</p>
<ul>
<li><span class="mathjax-exps">$\sigma'(z) = \sigma(z) (1 - \sigma(z)) \leq \frac{1}{4}$</span></li>
<li><span class="mathjax-exps">$\tanh'(z) = 4 \sigma(2z) (1 - \sigma(2z)) \leq 4 \cdot \frac{1}{4} = 1$</span></li>
</ul>
<br>
<p>误差每传播一层都会乘以一个小于等于<span class="mathjax-exps">$1$</span>的系数，当网络层数很深时，梯度会不断衰减甚至消失，使得整个网络很难训练</p>
<br>
<p>方案：使用导数比较大的激活函数，比如 ReLU</p>
<div class="footer"><hr class="hr_bottom"><div class="multi_column"><h6 class="bottom_left">图神经网络导论</h6><h6 class="bottom_center">神经网络</h6><h6 class="bottom_right">tengzhang@hust.edu.cn</h6></div></div>
</section><section vertical="true" data-notes="" lineno="727" class="slide " data-line="727" data-h="8" data-v="1">
<div class="header"><img class="hust" src=""><div class="title"><hr class="hr_top"><h5>残差网络</h5></div></div>
<img src="data:image/svg+xml;charset=utf-8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgd2lkdGg9IjQ5Ni44MzZwdCIKICAgaGVpZ2h0PSIxMjUuODcwOThwdCIKICAgdmlld0JveD0iMCAwIDQ5Ni44MzYgMTI1Ljg3MDk4IgogICB2ZXJzaW9uPSIxLjIiCiAgIGlkPSJzdmcyNzEiCiAgIHNvZGlwb2RpOmRvY25hbWU9InJlc25ldC5zdmciCiAgIGlua3NjYXBlOnZlcnNpb249IjEuMS4xICgzYmY1YWUwZDI1LCAyMDIxLTA5LTIwKSIKICAgeG1sbnM6aW5rc2NhcGU9Imh0dHA6Ly93d3cuaW5rc2NhcGUub3JnL25hbWVzcGFjZXMvaW5rc2NhcGUiCiAgIHhtbG5zOnNvZGlwb2RpPSJodHRwOi8vc29kaXBvZGkuc291cmNlZm9yZ2UubmV0L0RURC9zb2RpcG9kaS0wLmR0ZCIKICAgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgPHNvZGlwb2RpOm5hbWVkdmlldwogICAgIGlkPSJuYW1lZHZpZXcyNzMiCiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEuMCIKICAgICBpbmtzY2FwZTpwYWdlc2hhZG93PSIyIgogICAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwLjAiCiAgICAgaW5rc2NhcGU6cGFnZWNoZWNrZXJib2FyZD0iMCIKICAgICBpbmtzY2FwZTpkb2N1bWVudC11bml0cz0icHQiCiAgICAgc2hvd2dyaWQ9ImZhbHNlIgogICAgIGlua3NjYXBlOnpvb209IjAuODI2NzA0NTUiCiAgICAgaW5rc2NhcGU6Y3g9IjI3NS4xODkiCiAgICAgaW5rc2NhcGU6Y3k9IjQzMy4wNDQ2NyIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjM4NDAiCiAgICAgaW5rc2NhcGU6d2luZG93LWhlaWdodD0iMjEwNiIKICAgICBpbmtzY2FwZTp3aW5kb3cteD0iMCIKICAgICBpbmtzY2FwZTp3aW5kb3cteT0iNTQiCiAgICAgaW5rc2NhcGU6d2luZG93LW1heGltaXplZD0iMSIKICAgICBpbmtzY2FwZTpjdXJyZW50LWxheWVyPSJzdmcyNzEiIC8+CiAgPGRlZnMKICAgICBpZD0iZGVmczY0Ij4KICAgIDxnCiAgICAgICBpZD0iZzYyIj4KICAgICAgPHN5bWJvbAogICAgICAgICBvdmVyZmxvdz0idmlzaWJsZSIKICAgICAgICAgaWQ9ImdseXBoMC0wIj4KICAgICAgICA8cGF0aAogICAgICAgICAgIHN0eWxlPSJzdHJva2U6bm9uZSIKICAgICAgICAgICBkPSIiCiAgICAgICAgICAgaWQ9InBhdGgyIiAvPgogICAgICA8L3N5bWJvbD4KICAgICAgPHN5bWJvbAogICAgICAgICBvdmVyZmxvdz0idmlzaWJsZSIKICAgICAgICAgaWQ9ImdseXBoMC0xIj4KICAgICAgICA8cGF0aAogICAgICAgICAgIHN0eWxlPSJzdHJva2U6bm9uZSIKICAgICAgICAgICBkPSJtIDcuNzE4NzUsLTQuNzUgYyAwLjA5Mzc1LC0wLjM3NSAwLjI1LC0wLjk4NDM3NSAwLjI1LC0xLjEwOTM3NSAwLC0wLjQ4NDM3NSAtMC4zOTA2MjUsLTAuNjcxODc1IC0wLjcwMzEyNSwtMC42NzE4NzUgLTAuMjk2ODc1LDAgLTAuNTkzNzUsMC4xNTYyNSAtMC43NjU2MjUsMC4zNzUgLTAuMjM0Mzc1LC0wLjIzNDM3NSAtMC43MTg3NSwtMC42MjUgLTEuNTkzNzUsLTAuNjI1IC0yLjYwOTM3NSwwIC00LjIzNDM3NSwyLjM3NSAtNC4yMzQzNzUsNC40MjE4NzUgMCwxLjg0Mzc1IDEuMzkwNjI1LDIuNDg0Mzc1IDIuNjI1LDIuNDg0Mzc1IDEuMDYyNSwwIDEuODQzNzUsLTAuNTkzNzUgMi4wOTM3NSwtMC44MTI1IDAuNTYyNSwwLjgxMjUgMS41NDY4NzUsMC44MTI1IDEuNzE4NzUsMC44MTI1IDAuNTYyNSwwIDAuOTg0Mzc1LC0wLjMxMjUgMS4zMTI1LC0wLjg1OTM3NSAwLjM3NSwtMC41OTM3NSAwLjU2MjUsLTEuNDA2MjUgMC41NjI1LC0xLjQ4NDM3NSAwLC0wLjIxODc1IC0wLjIxODc1LC0wLjIxODc1IC0wLjM1OTM3NSwtMC4yMTg3NSAtMC4xNzE4NzUsMCAtMC4yMTg3NSwwIC0wLjI5Njg3NSwwLjA3ODEyNSAtMC4wMzEyNSwwLjAzMTI1IC0wLjAzMTI1LDAuMDYyNSAtMC4xMjUsMC40Mzc1IC0wLjI5Njg3NSwxLjIwMzEyNSAtMC42NDA2MjUsMS41IC0xLjAxNTYyNSwxLjUgLTAuMTcxODc1LDAgLTAuMzQzNzUsLTAuMDYyNSAtMC4zNDM3NSwtMC41NDY4NzUgMCwtMC4yNjU2MjUgMC4wNjI1LC0wLjUgMC4yMDMxMjUsLTEuMDkzNzUgQyA3LjE1NjI1LC0yLjQ4NDM3NSA3LjMxMjUsLTMuMDkzNzUgNy4zNzUsLTMuNDIxODc1IFogbSAtMi40ODQzNzUsMy4zNTkzNzUgYyAtMC40Mzc1LDAuNSAtMS4xNDA2MjUsMC45Njg3NSAtMS44NTkzNzUsMC45Njg3NSAtMC45Mzc1LDAgLTEsLTAuODEyNSAtMSwtMS4xNDA2MjUgMCwtMC43ODEyNSAwLjUsLTIuNjI1IDAuNzUsLTMuMjAzMTI1IDAuNDUzMTI1LC0xLjA5Mzc1IDEuMTg3NSwtMS40Njg3NSAxLjgxMjUsLTEuNDY4NzUgMC44NzUsMCAxLjI1LDAuNzAzMTI1IDEuMjUsMC44NTkzNzUgbCAtMC4wMzEyNSwwLjIxODc1IHogbSAwLDAiCiAgICAgICAgICAgaWQ9InBhdGg1IiAvPgogICAgICA8L3N5bWJvbD4KICAgICAgPHN5bWJvbAogICAgICAgICBvdmVyZmxvdz0idmlzaWJsZSIKICAgICAgICAgaWQ9ImdseXBoMC0yIj4KICAgICAgICA8cGF0aAogICAgICAgICAgIHN0eWxlPSJzdHJva2U6bm9uZSIKICAgICAgICAgICBkPSJtIDMuNjA5Mzc1LC01LjEwOTM3NSBjIDAuMjE4NzUsLTAuMDE1NjI1IDAuNDA2MjUsMCAwLjYyNSwtMC4wMTU2MjUgMC41OTM3NSwtMC4wMzEyNSAxLjMyODEyNSwtMC4wNzgxMjUgMS45Mzc1LC0wLjA5Mzc1IEMgNS43NSwtNC44MTI1IDUuNSwtNC41NzgxMjUgMy45ODQzNzUsLTMuNDM3NSAwLjk1MzEyNSwtMS4xMjUgMC42MjUsLTAuMTU2MjUgMC42MjUsLTAuMDkzNzUgMC42MjUsMC4xMjUgMC44NDM3NSwwLjEyNSAwLjk2ODc1LDAuMTI1IGMgMC4yNSwwIDAuMjY1NjI1LC0wLjAxNTYyNSAwLjM1OTM3NSwtMC4xNzE4NzUgMC41NDY4NzUsLTAuNzUgMS4xMDkzNzUsLTAuODU5Mzc1IDEuMzQzNzUsLTAuODU5Mzc1IDAuNDA2MjUsMCAwLjc1LDAuMjY1NjI1IDAuOTY4NzUsMC40MjE4NzUgQyA0LjEwOTM3NSwtMC4xNTYyNSA0LjQ4NDM3NSwwLjEyNSA1LjA2MjUsMC4xMjUgYyAxLjY3MTg3NSwwIDIuNzY1NjI1LC0xLjgyODEyNSAyLjc2NTYyNSwtMi40MDYyNSAwLC0wLjIwMzEyNSAtMC4yNSwtMC4yMDMxMjUgLTAuMzU5Mzc1LC0wLjIwMzEyNSAtMC4xMDkzNzUsMCAtMC4yNjU2MjUsMCAtMC4zMTI1LDAuMTI1IEMgNy4wMTU2MjUsLTIuMDYyNSA2Ljg3NSwtMS42ODc1IDUuODU5Mzc1LC0xLjU3ODEyNSA1Ljc4MTI1LC0xLjU2MjUgMi44NDM3NSwtMS40Mzc1IDIuNTE1NjI1LC0xLjQyMTg3NSAyLjkzNzUsLTEuODI4MTI1IDMuMTg3NSwtMi4wNjI1IDQuNzAzMTI1LC0zLjIxODc1IDcuNzM0Mzc1LC01LjUzMTI1IDguMDYyNSwtNi41MTU2MjUgOC4wNjI1LC02LjU2MjUgYyAwLC0wLjIxODc1IC0wLjIwMzEyNSwtMC4yMTg3NSAtMC4zNDM3NSwtMC4yMTg3NSAtMC4yMTg3NSwwIC0wLjI1LDAgLTAuMzQzNzUsMC4xNTYyNSAtMC4zNTkzNzUsMC41MTU2MjUgLTAuNjQwNjI1LDAuODU5Mzc1IC0xLDAuODU5Mzc1IEMgNS45ODQzNzUsLTUuNzY1NjI1IDUuNjU2MjUsLTYgNS4zMTI1LC02LjIzNDM3NSA0Ljk1MzEyNSwtNi41MTU2MjUgNC41NzgxMjUsLTYuNzgxMjUgNC4wMTU2MjUsLTYuNzgxMjUgYyAtMS4zMTI1LDAgLTIuMTcxODc1LDEuMzQzNzUgLTIuMTcxODc1LDEuNzk2ODc1IDAsMC4yMTg3NSAwLjIzNDM3NSwwLjIxODc1IDAuMzU5Mzc1LDAuMjE4NzUgMC4xNDA2MjUsMCAwLjI5Njg3NSwwIDAuMzQzNzUsLTAuMjAzMTI1IDAuMjE4NzUsLTAuMDkzNzUgMC4zMTI1LC0wLjEwOTM3NSAwLjc2NTYyNSwtMC4xNDA2MjUgeiBtIDAsMCIKICAgICAgICAgICBpZD0icGF0aDgiIC8+CiAgICAgIDwvc3ltYm9sPgogICAgICA8c3ltYm9sCiAgICAgICAgIG92ZXJmbG93PSJ2aXNpYmxlIgogICAgICAgICBpZD0iZ2x5cGgwLTMiPgogICAgICAgIDxwYXRoCiAgICAgICAgICAgc3R5bGU9InN0cm9rZTpub25lIgogICAgICAgICAgIGQ9Im0gNC4yMTg3NSwtOS44OTA2MjUgYyAwLjA2MjUsLTAuMjAzMTI1IDAuMDYyNSwtMC4yMzQzNzUgMC4wNjI1LC0wLjI1IDAsLTAuMTg3NSAtMC4xNzE4NzUsLTAuMjY1NjI1IC0wLjM0Mzc1LC0wLjI2NTYyNSAtMC4wNDY4NzUsMCAtMC4wNjI1LDAgLTAuMDkzNzUsMC4wMTU2MyBsIC0xLjkzNzUsMC4wNzgxMyBjIC0wLjIxODc1LDAuMDE1NjMgLTAuNDg0Mzc1LDAuMDMxMjUgLTAuNDg0Mzc1LDAuNDUzMTI1IDAsMC4yODEyNSAwLjI4MTI1LDAuMjgxMjUgMC4zOTA2MjUsMC4yODEyNSAwLjE3MTg3NSwwIDAuNDM3NSwwIDAuNjI1LDAuMDE1NjI1IC0wLjEwOTM3NSwwLjUxNTYyNSAtMC4yNjU2MjUsMS4xNTYyNSAtMC40MDYyNSwxLjczNDM3NSBMIDAuOTg0Mzc1LC0zLjY4NzUgQyAwLjc4MTI1LC0yLjg0Mzc1IDAuNzgxMjUsLTIuNjcxODc1IDAuNzgxMjUsLTIuMzI4MTI1IGMgMCwxLjkyMTg3NSAxLjQyMTg3NSwyLjQ1MzEyNSAyLjU0Njg3NSwyLjQ1MzEyNSAyLjcxODc1LDAgNC4yNjU2MjUsLTIuNDUzMTI1IDQuMjY1NjI1LC00LjQzNzUgMCwtMS44NDM3NSAtMS4zOTA2MjUsLTIuNDY4NzUgLTIuNjI1LC0yLjQ2ODc1IC0wLjcxODc1LDAgLTEuMzI4MTI1LDAuMjgxMjUgLTEuNjQwNjI1LDAuNDg0Mzc1IHogbSAtMC44NTkzNzUsOS40Njg3NSBjIC0wLjU3ODEyNSwwIC0xLjA3ODEyNSwtMC4zMTI1IC0xLjA3ODEyNSwtMS4yNSAwLC0wLjQ2ODc1IDAuMTU2MjUsLTEuMDMxMjUgMC4yNSwtMS41IDAuMTU2MjUsLTAuNTYyNSAwLjQwNjI1LC0xLjU5Mzc1IDAuNTE1NjI1LC0yLjA0Njg3NSAwLjA3ODEyNSwtMC4yNSAwLjkyMTg3NSwtMS4wMTU2MjUgMS44NDM3NSwtMS4wMTU2MjUgMC45MjE4NzUsMCAxLDAuNzk2ODc1IDEsMS4xNDA2MjUgMCwwLjc4MTI1IC0wLjUsMi42MjUgLTAuNzUsMy4yMDMxMjUgLTAuNSwxLjIxODc1IC0xLjM0Mzc1LDEuNDY4NzUgLTEuNzgxMjUsMS40Njg3NSB6IG0gMCwwIgogICAgICAgICAgIGlkPSJwYXRoMTEiIC8+CiAgICAgIDwvc3ltYm9sPgogICAgICA8c3ltYm9sCiAgICAgICAgIG92ZXJmbG93PSJ2aXNpYmxlIgogICAgICAgICBpZD0iZ2x5cGgwLTQiPgogICAgICAgIDxwYXRoCiAgICAgICAgICAgc3R5bGU9InN0cm9rZTpub25lIgogICAgICAgICAgIGQ9Im0gNi40Njg3NSwtNS45Mzc1IGMgLTAuNzk2ODc1LDAuMjM0Mzc1IC0wLjgxMjUsMC45ODQzNzUgLTAuODEyNSwxLjAxNTYyNSAwLDAuMjM0Mzc1IDAuMTQwNjI1LDAuNjg3NSAwLjc1LDAuNjg3NSAwLjYyNSwwIDEuMDc4MTI1LC0wLjUzMTI1IDEuMDc4MTI1LC0xLjE1NjI1IDAsLTAuNzk2ODc1IC0wLjc4MTI1LC0xLjM5MDYyNSAtMi4wOTM3NSwtMS4zOTA2MjUgLTMuMDE1NjI1LDAgLTQuNzAzMTI1LDIuMzQzNzUgLTQuNzAzMTI1LDQuMzEyNSAwLDEuMzQzNzUgMC44NDM3NSwyLjU5Mzc1IDMuMTg3NSwyLjU5Mzc1IDAuMzkwNjI1LDAgMS40MjE4NzUsLTAuMDE1NjI1IDIuMzEyNSwtMC4zNTkzNzUgMC44NzUsLTAuMzQzNzUgMS40ODQzNzUsLTAuOTY4NzUgMS40ODQzNzUsLTEuMTQwNjI1IDAsLTAuMTI1IC0wLjI1LC0wLjM5MDYyNSAtMC4zNzUsLTAuMzkwNjI1IC0wLjA5Mzc1LDAgLTAuMTI1LDAuMDQ2ODc1IC0wLjIzNDM3NSwwLjE1NjI1IC0wLjgxMjUsMC44NTkzNzUgLTIsMS4xODc1IC0zLjE1NjI1LDEuMTg3NSAtMSwwIC0xLjQ4NDM3NSwtMC41IC0xLjQ4NDM3NSwtMS4zOTA2MjUgMCwtMC41MzEyNSAwLjM5MDYyNSwtMi4zNTkzNzUgMC44MjgxMjUsLTMuMTQwNjI1IDAuNjA5Mzc1LC0xLjAxNTYyNSAxLjUxNTYyNSwtMS4yODEyNSAyLjE1NjI1LC0xLjI4MTI1IDAuMTg3NSwwIDAuNjcxODc1LDAuMDE1NjI1IDEuMDYyNSwwLjI5Njg3NSB6IG0gMCwwIgogICAgICAgICAgIGlkPSJwYXRoMTQiIC8+CiAgICAgIDwvc3ltYm9sPgogICAgICA8c3ltYm9sCiAgICAgICAgIG92ZXJmbG93PSJ2aXNpYmxlIgogICAgICAgICBpZD0iZ2x5cGgxLTAiPgogICAgICAgIDxwYXRoCiAgICAgICAgICAgc3R5bGU9InN0cm9rZTpub25lIgogICAgICAgICAgIGQ9IiIKICAgICAgICAgICBpZD0icGF0aDE3IiAvPgogICAgICA8L3N5bWJvbD4KICAgICAgPHN5bWJvbAogICAgICAgICBvdmVyZmxvdz0idmlzaWJsZSIKICAgICAgICAgaWQ9ImdseXBoMS0xIj4KICAgICAgICA8cGF0aAogICAgICAgICAgIHN0eWxlPSJzdHJva2U6bm9uZSIKICAgICAgICAgICBkPSJtIDMuMDQ2ODc1LC04LjAzMTI1IGMgMC4wMTU2MjUsLTAuMDQ2ODc1IDAuMDMxMjUsLTAuMTA5Mzc1IDAuMDMxMjUsLTAuMTcxODc1IDAsLTAuMTI1IC0wLjEwOTM3NSwtMC4xMjUgLTAuMTQwNjI1LC0wLjEyNSAtMC4wMTU2MjUsMCAtMC40Mzc1LDAuMDMxMjUgLTAuNjU2MjUsMC4wNjI1IEMgMi4wNzgxMjUsLTguMjUgMS44OTA2MjUsLTguMjM0Mzc1IDEuNjg3NSwtOC4yMTg3NSBjIC0wLjI5Njg3NSwwLjAxNTYyNSAtMC4zNzUsMC4wMzEyNSAtMC4zNzUsMC4yNSAwLDAuMTI1IDAuMTA5Mzc1LDAuMTI1IDAuMjM0Mzc1LDAuMTI1IDAuNjA5Mzc1LDAgMC42MDkzNzUsMC4xMDkzNzUgMC42MDkzNzUsMC4yMTg3NSAwLDAuMDQ2ODc1IDAsMC4wNzgxMjUgLTAuMDYyNSwwLjI5Njg3NSBMIDAuNjA5Mzc1LC0xLjM3NSBjIC0wLjAzMTI1LDAuMTI1IC0wLjA2MjUsMC4yMTg3NSAtMC4wNjI1LDAuNDIxODc1IDAsMC41OTM3NSAwLjQ1MzEyNSwxLjA3ODEyNSAxLjA2MjUsMS4wNzgxMjUgMC4zOTA2MjUsMCAwLjY1NjI1LC0wLjI2NTYyNSAwLjg0Mzc1LC0wLjY0MDYyNSAwLjIwMzEyNSwtMC4zOTA2MjUgMC4zNzUsLTEuMTU2MjUgMC4zNzUsLTEuMjAzMTI1IDAsLTAuMDYyNSAtMC4wNDY4NzUsLTAuMTA5Mzc1IC0wLjEwOTM3NSwtMC4xMDkzNzUgLTAuMTA5Mzc1LDAgLTAuMTI1LDAuMDYyNSAtMC4xNzE4NzUsMC4yNSBDIDIuMzI4MTI1LC0wLjc1IDIuMTA5Mzc1LC0wLjEyNSAxLjYyNSwtMC4xMjUgYyAtMC4zNTkzNzUsMCAtMC4zNTkzNzUsLTAuMzc1IC0wLjM1OTM3NSwtMC41NDY4NzUgMCwtMC4wNDY4NzUgMCwtMC4yOTY4NzUgMC4wOTM3NSwtMC42NDA2MjUgeiBtIDAsMCIKICAgICAgICAgICBpZD0icGF0aDIwIiAvPgogICAgICA8L3N5bWJvbD4KICAgICAgPHN5bWJvbAogICAgICAgICBvdmVyZmxvdz0idmlzaWJsZSIKICAgICAgICAgaWQ9ImdseXBoMi0wIj4KICAgICAgICA8cGF0aAogICAgICAgICAgIHN0eWxlPSJzdHJva2U6bm9uZSIKICAgICAgICAgICBkPSIiCiAgICAgICAgICAgaWQ9InBhdGgyMyIgLz4KICAgICAgPC9zeW1ib2w+CiAgICAgIDxzeW1ib2wKICAgICAgICAgb3ZlcmZsb3c9InZpc2libGUiCiAgICAgICAgIGlkPSJnbHlwaDItMSI+CiAgICAgICAgPHBhdGgKICAgICAgICAgICBzdHlsZT0ic3Ryb2tlOm5vbmUiCiAgICAgICAgICAgZD0ibSA3LjkwNjI1LC0yLjc2NTYyNSBjIDAuMjAzMTI1LDAgMC40MjE4NzUsMCAwLjQyMTg3NSwtMC4yMzQzNzUgMCwtMC4yMzQzNzUgLTAuMjE4NzUsLTAuMjM0Mzc1IC0wLjQyMTg3NSwtMC4yMzQzNzUgSCAxLjQyMTg3NSBDIDEuMjE4NzUsLTMuMjM0Mzc1IDEsLTMuMjM0Mzc1IDEsLTMgYyAwLDAuMjM0Mzc1IDAuMjE4NzUsMC4yMzQzNzUgMC40MjE4NzUsMC4yMzQzNzUgeiBtIDAsMCIKICAgICAgICAgICBpZD0icGF0aDI2IiAvPgogICAgICA8L3N5bWJvbD4KICAgICAgPHN5bWJvbAogICAgICAgICBvdmVyZmxvdz0idmlzaWJsZSIKICAgICAgICAgaWQ9ImdseXBoMy0wIj4KICAgICAgICA8cGF0aAogICAgICAgICAgIHN0eWxlPSJzdHJva2U6bm9uZSIKICAgICAgICAgICBkPSIiCiAgICAgICAgICAgaWQ9InBhdGgyOSIgLz4KICAgICAgPC9zeW1ib2w+CiAgICAgIDxzeW1ib2wKICAgICAgICAgb3ZlcmZsb3c9InZpc2libGUiCiAgICAgICAgIGlkPSJnbHlwaDMtMSI+CiAgICAgICAgPHBhdGgKICAgICAgICAgICBzdHlsZT0ic3Ryb2tlOm5vbmUiCiAgICAgICAgICAgZD0ibSAzLjQ1MzEyNSwtNy42ODc1IGMgMCwtMC4yODEyNSAwLC0wLjI5Njg3NSAtMC4yMzQzNzUsLTAuMjk2ODc1IC0wLjI5Njg3NSwwLjMyODEyNSAtMC44OTA2MjUsMC43NjU2MjUgLTIuMTI1LDAuNzY1NjI1IHYgMC4zNTkzNzUgYyAwLjI4MTI1LDAgMC44NzUsMCAxLjUzMTI1LC0wLjMxMjUgdiA2LjI1IGMgMCwwLjQzNzUgLTAuMDMxMjUsMC41NzgxMjUgLTEuMDkzNzUsMC41NzgxMjUgaCAtMC4zNzUgViAwIGMgMC4zMjgxMjUsLTAuMDMxMjUgMS41LC0wLjAzMTI1IDEuODkwNjI1LC0wLjAzMTI1IDAuMzkwNjI1LDAgMS41NDY4NzUsMCAxLjg3NSwwLjAzMTI1IHYgLTAuMzQzNzUgaCAtMC4zNzUgYyAtMS4wNjI1LDAgLTEuMDkzNzUsLTAuMTQwNjI1IC0xLjA5Mzc1LC0wLjU3ODEyNSB6IG0gMCwwIgogICAgICAgICAgIGlkPSJwYXRoMzIiIC8+CiAgICAgIDwvc3ltYm9sPgogICAgICA8c3ltYm9sCiAgICAgICAgIG92ZXJmbG93PSJ2aXNpYmxlIgogICAgICAgICBpZD0iZ2x5cGgzLTIiPgogICAgICAgIDxwYXRoCiAgICAgICAgICAgc3R5bGU9InN0cm9rZTpub25lIgogICAgICAgICAgIGQ9Ik0gNS4yODEyNSwtMi4wMTU2MjUgSCA1LjAxNTYyNSBjIC0wLjAzMTI1LDAuMjAzMTI1IC0wLjEyNSwwLjg1OTM3NSAtMC4yNSwxLjA2MjUgQyA0LjY4NzUsLTAuODU5Mzc1IDQsLTAuODU5Mzc1IDMuNjQwNjI1LC0wLjg1OTM3NSBIIDEuNDIxODc1IEMgMS43MzQzNzUsLTEuMTI1IDIuNDY4NzUsLTEuODkwNjI1IDIuNzgxMjUsLTIuMTg3NSBjIDEuODI4MTI1LC0xLjY3MTg3NSAyLjUsLTIuMjk2ODc1IDIuNSwtMy40ODQzNzUgMCwtMS4zOTA2MjUgLTEuMDkzNzUsLTIuMzEyNSAtMi40ODQzNzUsLTIuMzEyNSAtMS4zOTA2MjUsMCAtMi4yMDMxMjUsMS4xODc1IC0yLjIwMzEyNSwyLjIxODc1IDAsMC42MjUgMC41MTU2MjUsMC42MjUgMC41NjI1LDAuNjI1IDAuMjUsMCAwLjU2MjUsLTAuMTg3NSAwLjU2MjUsLTAuNTc4MTI1IDAsLTAuMzI4MTI1IC0wLjIzNDM3NSwtMC41NjI1IC0wLjU2MjUsLTAuNTYyNSAtMC4xMDkzNzUsMCAtMC4xNDA2MjUsMCAtMC4xNzE4NzUsMC4wMTU2MjUgMC4yMzQzNzUsLTAuODEyNSAwLjg3NSwtMS4zNTkzNzUgMS42NTYyNSwtMS4zNTkzNzUgMS4wMTU2MjUsMCAxLjY0MDYyNSwwLjg0Mzc1IDEuNjQwNjI1LDEuOTUzMTI1IDAsMS4wMTU2MjUgLTAuNTc4MTI1LDEuOTA2MjUgLTEuMjY1NjI1LDIuNjcxODc1IEwgMC41OTM3NSwtMC4yODEyNSBWIDAgaCA0LjM3NSB6IG0gMCwwIgogICAgICAgICAgIGlkPSJwYXRoMzUiIC8+CiAgICAgIDwvc3ltYm9sPgogICAgICA8c3ltYm9sCiAgICAgICAgIG92ZXJmbG93PSJ2aXNpYmxlIgogICAgICAgICBpZD0iZ2x5cGg0LTAiPgogICAgICAgIDxwYXRoCiAgICAgICAgICAgc3R5bGU9InN0cm9rZTpub25lIgogICAgICAgICAgIGQ9Im0gMC41NDY4NzUsLTAuMDE1NjI1IHYgLTcuNzE4NzUgSCA3LjA5Mzc1IHYgNy43MTg3NSB6IG0gMS4xODc1LC0xLjI5Njg3NSBoIDQuMTU2MjUgdiAtNS4xNDA2MjUgaCAtNC4xNTYyNSB6IG0gMCwwIgogICAgICAgICAgIGlkPSJwYXRoMzgiIC8+CiAgICAgIDwvc3ltYm9sPgogICAgICA8c3ltYm9sCiAgICAgICAgIG92ZXJmbG93PSJ2aXNpYmxlIgogICAgICAgICBpZD0iZ2x5cGg0LTEiPgogICAgICAgIDxwYXRoCiAgICAgICAgICAgc3R5bGU9InN0cm9rZTpub25lIgogICAgICAgICAgIGQ9Ik0gNS4zOTA2MjUsMC4yNSBDIDUuMzE2NDA2LDAuMjUgNS4yNTc4MTIsMC4yMDcwMzEgNS4yMTg3NSwwLjEyNSA1LjE3NTc4MSwwLjAzOTA2MjUgNS4xMzI4MTIsLTAuMDUwNzgxMiA1LjA5Mzc1LC0wLjE1NjI1IEwgMS41LC04LjMxMjUgQyAxLjM4MjgxMiwtOC41NTA3ODEgMS4yNSwtOC43NTM5MDYgMS4wOTM3NSwtOC45MjE4NzUgMC45NDUzMTIsLTkuMDg1OTM4IDAuNzM0Mzc1LC05LjIwNzAzMSAwLjQ1MzEyNSwtOS4yODEyNSAwLjMyODEyNSwtOS4zMjAzMTIgMC4yMTg3NSwtOS4zNjMyODEgMC4xMjUsLTkuNDA2MjUgMC4wMzkwNjI1LC05LjQ1NzAzMSAwLC05LjUxOTUzMSAwLC05LjU5Mzc1IDAsLTkuNjY0MDYyIDAuMDM5MDYyNSwtOS43MTg3NSAwLjEyNSwtOS43NSBjIDAuMDgyMDMxLC0wLjAzOTA2MiAwLjE3NTc4MSwtMC4wNjI1IDAuMjgxMjUsLTAuMDYyNSAwLjI4MTI1LDAgMC41NzgxMjUsMC4wMTE3MTkgMC44OTA2MjUsMC4wMzEyNSAwLjMxMjUsMC4wMjM0MzggMC42MDE1NjMsMC4wMzEyNSAwLjg3NSwwLjAzMTI1IDAuMzAwNzgxLDAgMC41OTc2NTYsLTAuMDA3ODEgMC44OTA2MjUsLTAuMDMxMjUgMC4yODkwNjIsLTAuMDE5NTMxIDAuNTYyNSwtMC4wMzEyNSAwLjgxMjUsLTAuMDMxMjUgMC4xMjUsMCAwLjIyNjU2MiwwLjAyMzQzOCAwLjMxMjUsMC4wNjI1IDAuMDgyMDMxLDAuMDMxMjUgMC4xMjUsMC4wODU5MzggMC4xMjUsMC4xNTYyNSAwLDAuMDc0MjE5IC0wLjA0Mjk2OSwwLjEzNjcxOSAtMC4xMjUsMC4xODc1IC0wLjA4NTkzOCwwLjA0Mjk2OSAtMC4yMDMxMjUsMC4wODU5MzggLTAuMzU5Mzc1LDAuMTI1IEMgMy42Nzk2ODgsLTkuMjUgMy41OTM3NSwtOS4xOTE0MDYgMy41NjI1LC05LjEwOTM3NSAzLjUzMTI1LC05LjAyMzQzOCAzLjUxNTYyNSwtOC45MjU3ODEgMy41MTU2MjUsLTguODEyNSBjIDAsMC4wODU5MzggMC4wMDc4MSwwLjE4MzU5NCAwLjAzMTI1LDAuMjk2ODc1IDAuMDMxMjUsMC4xMDU0NjkgMC4wNDY4NzUsMC4xNzE4NzUgMC4wNDY4NzUsMC4yMDMxMjUgMC4yMTg3NSwwLjUxMTcxOSAwLjQyMTg3NSwwLjk5NjA5NCAwLjYwOTM3NSwxLjQ1MzEyNSAwLjE5NTMxMywwLjQ2MDkzNyAwLjM5MDYyNSwwLjkxNzk2OSAwLjU3ODEyNSwxLjM3NSAwLjE4NzUsMC40NDkyMTkgMC4zNzg5MDYsMC45MDIzNDQgMC41NzgxMjUsMS4zNTkzNzUgMC4yMDcwMzEsMC40NjA5MzggMC40MTQwNjMsMC45NDUzMTIgMC42MjUsMS40NTMxMjUgQyA2LjAzNTE1NiwtMi41NTQ2ODggNi4wNzgxMjUsLTIuNSA2LjEwOTM3NSwtMi41IDYuMTQ4NDM4LC0yLjUgNi4xODc1LC0yLjU1MDc4MSA2LjIxODc1LC0yLjY1NjI1IGwgMC45NTMxMjUsLTIgYyAwLjAzMTI1LC0wLjA2MjUgMC4wNTA3ODEsLTAuMTE3MTg4IDAuMDYyNSwtMC4xNzE4NzUgMC4wMTk1MzEsLTAuMDUwNzgxIDAuMDMxMjUsLTAuMDk3NjU2IDAuMDMxMjUsLTAuMTQwNjI1IDAsLTAuMDUwNzgxIC0wLjAxMTcxOSwtMC4wOTc2NTYgLTAuMDMxMjUsLTAuMTQwNjI1IC0wLjAxMTcxOSwtMC4wNTA3ODEgLTAuMDMxMjUsLTAuMTEzMjgxIC0wLjA2MjUsLTAuMTg3NSBMIDUuODQzNzUsLTguMjAzMTI1IGMgLTAuMTA1NDY5LC0wLjI2OTUzMSAtMC4yNzM0MzgsLTAuNSAtMC41LC0wLjY4NzUgQyA1LjEyNSwtOS4wNzgxMjUgNC44NzUsLTkuMjA3MDMxIDQuNTkzNzUsLTkuMjgxMjUgNC40Njg3NSwtOS4zMjAzMTIgNC4zNjcxODgsLTkuMzYzMjgxIDQuMjk2ODc1LC05LjQwNjI1IDQuMjIyNjU2LC05LjQ1NzAzMSA0LjE4NzUsLTkuNTE5NTMxIDQuMTg3NSwtOS41OTM3NSBjIDAsLTAuMDcwMzEyIDAuMDMxMjUsLTAuMTI1IDAuMDkzNzUsLTAuMTU2MjUgMC4wNzAzMTIsLTAuMDM5MDYyIDAuMTU2MjUsLTAuMDYyNSAwLjI1LC0wLjA2MjUgMC4xODc1LDAgMC4zOTA2MjUsMC4wMDc4MSAwLjYwOTM3NSwwLjAxNTYyNSAwLjIxODc1LDAuMDExNzE5IDAuNDQxNDA2LDAuMDIzNDM3IDAuNjcxODc1LDAuMDMxMjUgQyA2LjAzOTA2MiwtOS43NTM5MDYgNi4yNDIxODgsLTkuNzUgNi40MjE4NzUsLTkuNzUgYyAwLjI2OTUzMSwwIDAuNTM5MDYzLC0wLjAwMzkxIDAuODEyNSwtMC4wMTU2MjUgMC4yNjk1MzEsLTAuMDE5NTMxIDAuNTMxMjUsLTAuMDMxMjUgMC43ODEyNSwtMC4wMzEyNSAwLjEzMjgxMywwIDAuMjQyMTg3LDAuMDE1NjI1IDAuMzI4MTI1LDAuMDQ2ODc1IDAuMDgyMDMxLDAuMDMxMjUgMC4xMjUsMC4wODU5MzggMC4xMjUsMC4xNTYyNSAwLDAuMDU0Njg4IC0wLjAzMTI1LDAuMTA1NDY5IC0wLjA5Mzc1LDAuMTU2MjUgLTAuMDU0Njg4LDAuMDQyOTY5IC0wLjEyNSwwLjA4OTg0NCAtMC4yMTg3NSwwLjE0MDYyNSAtMC4wOTM3NSwwLjA0Mjk2OSAtMC4xNzE4NzUsMC4wOTM3NSAtMC4yMzQzNzUsMC4xNTYyNSAtMC4xMjUsMC4wMzEyNSAtMC4xOTkyMTksMC4wODk4NDQgLTAuMjE4NzUsMC4xNzE4NzUgLTAuMDExNzE5LDAuMDc0MjE5IDAsMC4xNDg0MzggMC4wMzEyNSwwLjIxODc1IDAuMDMxMjUsMC4wODU5MzggMC4wNzgxMjUsMC4yMTA5MzggMC4xNDA2MjUsMC4zNzUgMC4wNjI1LDAuMTU2MjUgMC4xMjUsMC4zMjgxMjUgMC4xODc1LDAuNTE1NjI1IDAuMDcwMzEyLDAuMTc5Njg3IDAuMTQ0NTMxLDAuMzU1NDY5IDAuMjE4NzUsMC41MzEyNSAwLjA3MDMxMiwwLjE2Nzk2OSAwLjEyNSwwLjI5Njg3NSAwLjE1NjI1LDAuMzkwNjI1IDAuMDYyNSwwLjEyNSAwLjEwOTM3NSwwLjE4MzU5NCAwLjE0MDYyNSwwLjE3MTg3NSAwLjAzOTA2MywtMC4wMTk1MzEgMC4wODU5MzcsLTAuMDc4MTI1IDAuMTQwNjI1LC0wLjE3MTg3NSAwLjA2MjUsLTAuMTU2MjUgMC4xMzI4MTIsLTAuMzQ3NjU2IDAuMjE4NzUsLTAuNTc4MTI1IDAuMDkzNzUsLTAuMjI2NTYzIDAuMTc1NzgxLC0wLjQ0NTMxMyAwLjI1LC0wLjY1NjI1IDAuMDcwMzEyLC0wLjIxODc1IDAuMTI4OTA2LC0wLjM3ODkwNiAwLjE3MTg3NSwtMC40ODQzNzUgMC4wMzEyNSwtMC4wNzAzMTIgMC4wNDY4NzUsLTAuMTQ0NTMxIDAuMDQ2ODc1LC0wLjIxODc1IDAsLTAuMTQ0NTMxIC0wLjA1ODU5NCwtMC4yNSAtMC4xNzE4NzUsLTAuMzEyNSBDIDkuMTI4OTA2LC05LjI1IDkuMDE5NTMxLC05LjMwNDY4OCA4LjkwNjI1LC05LjM1OTM3NSBjIC0wLjExNzE4OCwtMC4wNjI1IC0wLjE3MTg3NSwtMC4xMzI4MTMgLTAuMTcxODc1LC0wLjIxODc1IDAsLTAuMDcwMzEzIDAuMDE5NTMxLC0wLjEyNSAwLjA2MjUsLTAuMTU2MjUgMC4wNTA3ODEsLTAuMDM5MDYzIDAuMTU2MjUsLTAuMDYyNSAwLjMxMjUsLTAuMDYyNSAwLjI1LDAgMC40MTQwNjMsMC4wMTE3MTkgMC41LDAuMDMxMjUgQyA5LjY5MTQwNiwtOS43NTM5MDYgOS44MDA3ODEsLTkuNzUgOS45Mzc1LC05Ljc1IGMgMC4xNjQwNjIsLTAuMDA3ODEgMC4zMTY0MDYsLTAuMDE5NTMxIDAuNDUzMTI1LC0wLjAzMTI1IDAuMTQ0NTMxLC0wLjAxOTUzMSAwLjM0Mzc1LC0wLjAzMTI1IDAuNTkzNzUsLTAuMDMxMjUgMC4xMTMyODEsMCAwLjIxMDkzNywwLjAxNTYyNSAwLjI5Njg3NSwwLjA0Njg3NSAwLjA5Mzc1LDAuMDMxMjUgMC4xNDA2MjUsMC4wODk4NDQgMC4xNDA2MjUsMC4xNzE4NzUgMCwwLjA4NTkzOCAtMC4wNDI5NywwLjE0ODQzOCAtMC4xMjUsMC4xODc1IC0wLjA4NTk0LDAuMDQyOTY5IC0wLjE4NzUsMC4wNzgxMjUgLTAuMzEyNSwwLjEwOTM3NSAtMC4zMTI1LDAuMDc0MjE5IC0wLjUzOTA2MywwLjE4MzU5NCAtMC42NzE4NzUsMC4zMjgxMjUgLTAuMTI1LDAuMTM2NzE5IC0wLjI1LDAuMzEyNSAtMC4zNzUsMC41MzEyNSBDIDkuODUxNTYyLC04LjI2OTUzMSA5Ljc1MzkwNiwtOC4wNzAzMTIgOS42NDA2MjUsLTcuODQzNzUgOS41MzUxNTYsLTcuNjEzMjgxIDkuNDI1NzgxLC03LjM3NSA5LjMxMjUsLTcuMTI1IDkuMTk1MzEyLC02Ljg3NSA5LjA5Mzc1LC02LjY0MDYyNSA5LC02LjQyMTg3NSBjIC0wLjA1NDY4OCwwLjEwNTQ2OSAtMC4wODU5MzgsMC4yMTg3NSAtMC4wOTM3NSwwLjM0Mzc1IDAsMC4xMjUgMC4wMjM0MzgsMC4yNDIxODcgMC4wNzgxMjUsMC4zNDM3NSBsIDEuMjgxMjUsMy4wOTM3NSBjIDAuMDMxMjUsMC4wODU5MzcgMC4wNjI1LDAuMTE3MTg3IDAuMDkzNzUsMC4wOTM3NSAwLjAzMTI1LC0wLjAzMTI1IDAuMDU0NjksLTAuMDc4MTI1IDAuMDc4MTMsLTAuMTQwNjI1IDAuMzMyMDMxLC0wLjc4OTA2MiAwLjY3NTc4MSwtMS42NjQwNjIgMS4wMzEyNSwtMi42MjUgMC4zNTE1NjIsLTAuOTU3MDMxIDAuNjg3NSwtMS44ODI4MTIgMSwtMi43ODEyNSAwLjA2MjUsLTAuMTk1MzEyIDAuMDk3NjYsLTAuMzQzNzUgMC4xMDkzNzUsLTAuNDM3NSAwLjAxOTUzLC0wLjA5Mzc1IDAuMDMxMjUsLTAuMTc1NzgxIDAuMDMxMjUsLTAuMjUgQyAxMi41OTc2NTYsLTguODk0NTMxIDEyLjU2MjUsLTguOTkyMTg4IDEyLjUsLTkuMDc4MTI1IGMgLTAuMDYyNSwtMC4wOTM3NSAtMC4xNjc5NjksLTAuMTYwMTU2IC0wLjMxMjUsLTAuMjAzMTI1IC0wLjEwNTQ2OSwtMC4wMTk1MzEgLTAuMjE0ODQ0LC0wLjA1NDY4OCAtMC4zMjgxMjUsLTAuMTA5Mzc1IC0wLjEwNTQ2OSwtMC4wNjI1IC0wLjE1NjI1LC0wLjEyODkwNiAtMC4xNTYyNSwtMC4yMDMxMjUgMCwtMC4wNzAzMTIgMC4wMzkwNiwtMC4xMjUgMC4xMjUsLTAuMTU2MjUgMC4wOTM3NSwtMC4wMzEyNSAwLjE5NTMxMywtMC4wNDY4NzUgMC4zMTI1LC0wLjA0Njg3NSAwLjI2OTUzMSwwIDAuNDcyNjU2LDAuMDExNzE5IDAuNjA5Mzc1LDAuMDMxMjUgMC4xMzI4MTIsMC4wMTE3MTkgMC4yODUxNTYsMC4wMTE3MTkgMC40NTMxMjUsMCAwLjE4NzUsMCAwLjM3NSwtMC4wMDc4MSAwLjU2MjUsLTAuMDMxMjUgMC4xOTUzMTMsLTAuMDE5NTMxIDAuNDIxODc1LC0wLjAzMTI1IDAuNjcxODc1LC0wLjAzMTI1IDAuMTMyODEyLDAgMC4yNDIxODgsMC4wMTU2MjUgMC4zMjgxMjUsMC4wNDY4NzUgMC4wOTM3NSwwLjAzMTI1IDAuMTQwNjI1LDAuMDg5ODQ0IDAuMTQwNjI1LDAuMTcxODc1IDAsMC4wODU5MzcgLTAuMDQ2ODcsMC4xNDg0MzcgLTAuMTQwNjI1LDAuMTg3NSAtMC4wOTM3NSwwLjA0Mjk2OSAtMC4yMDMxMjUsMC4wNzgxMjUgLTAuMzI4MTI1LDAuMTA5Mzc1IC0wLjIxODc1LDAuMDU0Njg4IC0wLjQwMjM0NCwwLjE0MDYyNSAtMC41NDY4NzUsMC4yNjU2MjUgLTAuMTQ4NDM3LDAuMTI1IC0wLjI3MzQzNywwLjI2MTcxOSAtMC4zNzUsMC40MDYyNSAtMC4wOTM3NSwwLjE0ODQzNyAtMC4xNjc5NjksMC4zMDQ2ODcgLTAuMjE4NzUsMC40Njg3NSBsIC0zLjIxODc1LDguMDYyNSBjIC0wLjAzMTI1LDAuMDg1OTM3NSAtMC4wNzQyMiwwLjE1NjI1IC0wLjEyNSwwLjIxODc1IC0wLjA0Mjk2OSwwLjA2MjUgLTAuMDkzNzUsMC4wOTM3NSAtMC4xNTYyNSwwLjA5Mzc1IC0wLjA3NDIxOSwwIC0wLjEzNjcxOSwtMC4wMjczNDQgLTAuMTg3NSwtMC4wNzgxMjUgQyA5LjU1NDY4OCwwLjA3MDMxMjUgOS41MDc4MTIsMC4wMDM5MDYyNSA5LjQ2ODc1LC0wLjA3ODEyNSA5LjMwMDc4MSwtMC40NDE0MDYgOS4xMzI4MTIsLTAuODEyNSA4Ljk2ODc1LC0xLjE4NzUgOC44MDA3ODEsLTEuNTYyNSA4LjYxNzE4OCwtMS45ODQzNzUgOC40MjE4NzUsLTIuNDUzMTI1IDguMjIyNjU2LC0yLjkyOTY4OCA3Ljk4ODI4MSwtMy40Njg3NSA3LjcxODc1LC00LjA2MjUgNy42OTUzMTIsLTQuMTMyODEyIDcuNjY0MDYyLC00LjE2NDA2MiA3LjYyNSwtNC4xNTYyNSA3LjU5Mzc1LC00LjE0NDUzMSA3LjU2MjUsLTQuMDk3NjU2IDcuNTMxMjUsLTQuMDE1NjI1IDcuMzIwMzEyLC0zLjU2NjQwNiA3LjExMzI4MSwtMy4xMzI4MTIgNi45MDYyNSwtMi43MTg3NSA2LjcwNzAzMSwtMi4zMDA3ODEgNi41MDc4MTIsLTEuODgyODEyIDYuMzEyNSwtMS40Njg3NSA2LjEyNSwtMS4wNTA3ODEgNS45MjU3ODEsLTAuNjEzMjgxIDUuNzE4NzUsLTAuMTU2MjUgNS42NzU3ODEsLTAuMDUwNzgxMiA1LjYyNSwwLjAzOTA2MjUgNS41NjI1LDAuMTI1IDUuNTA3ODEyLDAuMjA3MDMxIDUuNDUzMTI1LDAuMjUgNS4zOTA2MjUsMC4yNSBaIG0gMCwwIgogICAgICAgICAgIGlkPSJwYXRoNDEiIC8+CiAgICAgIDwvc3ltYm9sPgogICAgICA8c3ltYm9sCiAgICAgICAgIG92ZXJmbG93PSJ2aXNpYmxlIgogICAgICAgICBpZD0iZ2x5cGg0LTIiPgogICAgICAgIDxwYXRoCiAgICAgICAgICAgc3R5bGU9InN0cm9rZTpub25lIgogICAgICAgICAgIGQ9Ik0gNS41OTM3NSwwLjIwMzEyNSBDIDQuNjY0MDYyLDAuMjAzMTI1IDMuODkwNjI1LDAuMDM5MDYyNSAzLjI2NTYyNSwtMC4yODEyNSAyLjY0ODQzOCwtMC42MTMyODEgMi4xODc1LC0xLjA3MDMxMiAxLjg3NSwtMS42NTYyNSAxLjU2MjUsLTIuMjUgMS40MDYyNSwtMi45NDE0MDYgMS40MDYyNSwtMy43MzQzNzUgdiAtNC4zNzUgQyAxLjQwNjI1LC04LjQxMDE1NiAxLjMzNTkzOCwtOC42NjQwNjIgMS4yMDMxMjUsLTguODc1IDEuMDY2NDA2LC05LjA4MjAzMSAwLjg5MDYyNSwtOS4yMTg3NSAwLjY3MTg3NSwtOS4yODEyNSAwLjM2NzE4OCwtOS4zNjMyODEgMC4yMTg3NSwtOS40NzI2NTYgMC4yMTg3NSwtOS42MDkzNzUgYyAwLC0wLjA2MjUgMC4wMzkwNjIsLTAuMTA5Mzc1IDAuMTI1LC0wLjE0MDYyNSAwLjA4MjAzMSwtMC4wMzkwNjIgMC4xNzk2ODgsLTAuMDYyNSAwLjI5Njg3NSwtMC4wNjI1IDAuMjgxMjUsMCAwLjU3MDMxMywwLjAxMTcxOSAwLjg3NSwwLjAzMTI1IDAuMzEyNSwwLjAyMzQzOCAwLjYxMzI4MSwwLjAzMTI1IDAuOTA2MjUsMC4wMzEyNSAwLjI1NzgxMywwIDAuNTU0Njg3LC0wLjAwMzkxIDAuODkwNjI1LC0wLjAxNTYyNSAwLjMzMjAzMSwtMC4wMTk1MzEgMC42MTcxODgsLTAuMDMxMjUgMC44NTkzNzUsLTAuMDMxMjUgMC4xMTMyODEsMCAwLjIwNzAzMSwwLjAxNTYyNSAwLjI4MTI1LDAuMDQ2ODc1IDAuMDgyMDMxLDAuMDMxMjUgMC4xMjUsMC4wODU5MzggMC4xMjUsMC4xNTYyNSAwLDAuMDkzNzUgLTAuMDYyNSwwLjE2Nzk2OSAtMC4xODc1LDAuMjE4NzUgLTAuMTI1LDAuMDQyOTY5IC0wLjI3NzM0NCwwLjEwMTU2MiAtMC40NTMxMjUsMC4xNzE4NzUgLTAuMTM2NzE5LDAuMDU0Njg3IC0wLjI2NTYyNSwwLjE3MTg3NSAtMC4zOTA2MjUsMC4zNTkzNzUgLTAuMTI1LDAuMTg3NSAtMC4xODc1LDAuNDQ1MzEyIC0wLjE4NzUsMC43NjU2MjUgdiA0LjAzMTI1IGMgMCwwLjcxODc1IDAuMTE3MTg3LDEuMzEyNSAwLjM1OTM3NSwxLjc4MTI1IDAuMjM4MjgxLDAuNDYwOTM3IDAuNTU0Njg4LDAuNzk2ODc1IDAuOTUzMTI1LDEuMDE1NjI1IDAuNDA2MjUsMC4yMTg3NSAwLjg1OTM3NSwwLjMyODEyNSAxLjM1OTM3NSwwLjMyODEyNSAwLjk0NTMxMiwwIDEuNjQ4NDM4LC0wLjI5Njg3NSAyLjEwOTM3NSwtMC44OTA2MjUgMC40NTcwMzEsLTAuNjAxNTYyIDAuNjg3NSwtMS40NjA5MzggMC42ODc1LC0yLjU3ODEyNSAwLC0wLjI1IDAsLTAuNTQ2ODc1IDAsLTAuODkwNjI1IDAsLTAuMzQzNzUgLTAuMDA3ODEsLTAuNjk1MzEyIC0wLjAxNTYyNSwtMS4wNjI1IDAsLTAuMzYzMjgxIDAsLTAuNzA3MDMxIDAsLTEuMDMxMjUgMCwtMC4zOTQ1MzEgLTAuMDMxMjUsLTAuNzEwOTM4IC0wLjA5Mzc1LC0wLjk1MzEyNSAtMC4wNTQ2ODgsLTAuMjUgLTAuMTMyODEyLC0wLjQ0NTMxMyAtMC4yMzQzNzUsLTAuNTkzNzUgQyA4LjM5MDYyNSwtOS4wNjY0MDYgOC4yNSwtOS4xNzU3ODEgOC4wNjI1LC05LjI1IDcuOTY4NzUsLTkuMjg5MDYyIDcuODUxNTYyLC05LjMzNTkzOCA3LjcxODc1LC05LjM5MDYyNSA3LjU4MjAzMSwtOS40NDE0MDYgNy41MTU2MjUsLTkuNTAzOTA2IDcuNTE1NjI1LC05LjU3ODEyNSA3LjUxNTYyNSwtOS42NjAxNTYgNy41NTA3ODEsLTkuNzE4NzUgNy42MjUsLTkuNzUgYyAwLjA4MjAzMSwtMC4wMzEyNSAwLjE5MTQwNiwtMC4wNDY4NzUgMC4zMjgxMjUsLTAuMDQ2ODc1IDAuMzIwMzEzLDAgMC41NjY0MDYsMC4wMDc4MSAwLjczNDM3NSwwLjAxNTYyNSAwLjE3NTc4MSwwLjAxMTcxOSAwLjM3ODkwNiwwLjAxNTYyNSAwLjYwOTM3NSwwLjAxNTYyNSAwLjE3NTc4MSwwIDAuMzI4MTI1LDAgMC40NTMxMjUsMCAwLjEzMjgxMiwtMC4wMDc4MSAwLjI2NTYyNSwtMC4wMTk1MzEgMC4zOTA2MjUsLTAuMDMxMjUgMC4xMzI4MTMsLTAuMDA3ODEgMC4yODkwNjMsLTAuMDE1NjI1IDAuNDY4NzUsLTAuMDE1NjI1IDAuMTEzMjgxLDAgMC4yMDcwMzEsMC4wMTU2MjUgMC4yODEyNSwwLjA0Njg3NSBDIDEwLjk2MDkzOCwtOS43NDIxODggMTEsLTkuNjkxNDA2IDExLC05LjYwOTM3NSBjIDAsMC4xMzY3MTkgLTAuMTQ4NDM4LDAuMjQyMTg3IC0wLjQzNzUsMC4zMTI1IC0wLjMxMjUsMC4wNzQyMTkgLTAuNTMxMjUsMC4yMTg3NSAtMC42NTYyNSwwLjQzNzUgLTAuMTE3MTg4LDAuMjEwOTM3IC0wLjE4MzU5NCwwLjQ4MDQ2OSAtMC4yMDMxMjUsMC44MTI1IC0wLjA0Mjk2OSwwLjc5Mjk2OSAtMC4wNzQyMTksMS41MjM0MzcgLTAuMDkzNzUsMi4xODc1IEMgOS41OTc2NTYsLTUuMjAzMTI1IDkuNTg1OTM4LC00LjUzOTA2MiA5LjU3ODEyNSwtMy44NzUgOS41NjY0MDYsLTMuMDcwMzEyIDkuMzgyODEyLC0yLjM2MzI4MSA5LjAzMTI1LC0xLjc1IDguNjc1NzgxLC0xLjEzMjgxMiA4LjE5NTMxMiwtMC42NTYyNSA3LjU5Mzc1LC0wLjMxMjUgNywwLjAzMTI1IDYuMzMyMDMxLDAuMjAzMTI1IDUuNTkzNzUsMC4yMDMxMjUgWiBtIDAsMCIKICAgICAgICAgICBpZD0icGF0aDQ0IiAvPgogICAgICA8L3N5bWJvbD4KICAgICAgPHN5bWJvbAogICAgICAgICBvdmVyZmxvdz0idmlzaWJsZSIKICAgICAgICAgaWQ9ImdseXBoNS0wIj4KICAgICAgICA8cGF0aAogICAgICAgICAgIHN0eWxlPSJzdHJva2U6bm9uZSIKICAgICAgICAgICBkPSIiCiAgICAgICAgICAgaWQ9InBhdGg0NyIgLz4KICAgICAgPC9zeW1ib2w+CiAgICAgIDxzeW1ib2wKICAgICAgICAgb3ZlcmZsb3c9InZpc2libGUiCiAgICAgICAgIGlkPSJnbHlwaDUtMSI+CiAgICAgICAgPHBhdGgKICAgICAgICAgICBzdHlsZT0ic3Ryb2tlOm5vbmUiCiAgICAgICAgICAgZD0ibSAyLjkyMTg3NSwwLjA2MjUgYyAwLC0wLjg3NSAtMC4yODEyNSwtMS41MTU2MjUgLTAuODkwNjI1LC0xLjUxNTYyNSAtMC40ODQzNzUsMCAtMC43MTg3NSwwLjM5MDYyNSAtMC43MTg3NSwwLjcxODc1IEMgMS4zMTI1LC0wLjQwNjI1IDEuNTMxMjUsMCAyLjA0Njg3NSwwIDIuMjM0Mzc1LDAgMi40MDYyNSwtMC4wNjI1IDIuNTMxMjUsLTAuMTg3NSAyLjU2MjUsLTAuMjE4NzUgMi41NzgxMjUsLTAuMjE4NzUgMi41OTM3NSwtMC4yMTg3NSAyLjYyNSwtMC4yMTg3NSAyLjYyNSwtMC4wMTU2MjUgMi42MjUsMC4wNjI1IDIuNjI1LDAuNTYyNSAyLjUzMTI1LDEuNTMxMjUgMS42NzE4NzUsMi41IDEuNSwyLjY4NzUgMS41LDIuNzE4NzUgMS41LDIuNzUgYyAwLDAuMDYyNSAwLjA3ODEyNSwwLjE0MDYyNSAwLjE1NjI1LDAuMTQwNjI1IDAuMTA5Mzc1LDAgMS4yNjU2MjUsLTEuMTA5Mzc1IDEuMjY1NjI1LC0yLjgyODEyNSB6IG0gMCwwIgogICAgICAgICAgIGlkPSJwYXRoNTAiIC8+CiAgICAgIDwvc3ltYm9sPgogICAgICA8c3ltYm9sCiAgICAgICAgIG92ZXJmbG93PSJ2aXNpYmxlIgogICAgICAgICBpZD0iZ2x5cGg1LTIiPgogICAgICAgIDxwYXRoCiAgICAgICAgICAgc3R5bGU9InN0cm9rZTpub25lIgogICAgICAgICAgIGQ9Im0gNC4yMTg3NSwtMTAuMDMxMjUgYyAwLjAxNTYyNSwtMC4wNjI1IDAuMDQ2ODc1LC0wLjE1NjI1IDAuMDQ2ODc1LC0wLjIzNDM3NSAwLC0wLjE0MDYyNSAtMC4xNTYyNSwtMC4xNDA2MjUgLTAuMTg3NSwtMC4xNDA2MjUgLTAuMDE1NjI1LDAgLTAuNzUsMC4wNjI1IC0wLjgyODEyNSwwLjA3ODEzIC0wLjI1LDAuMDE1NjMgLTAuNDY4NzUsMC4wMzEyNSAtMC43NSwwLjA0Njg3IC0wLjM3NSwwLjAzMTI1IC0wLjQ2ODc1LDAuMDQ2ODcgLTAuNDY4NzUsMC4zMjgxMjUgMCwwLjE0MDYyNSAwLjEwOTM3NSwwLjE0MDYyNSAwLjMyODEyNSwwLjE0MDYyNSAwLjczNDM3NSwwIDAuNzUsMC4xNDA2MjUgMC43NSwwLjI4MTI1IDAsMC4wOTM3NSAtMC4wMzEyNSwwLjIxODc1IC0wLjA0Njg3NSwwLjI2NTYyNSBsIC0yLjE3MTg3NSw4LjY4NzUgYyAtMC4wNjI1LDAuMjE4NzUgLTAuMDYyNSwwLjI1IC0wLjA2MjUsMC4zNDM3NSAwLDAuMzI4MTI1IDAuMjUsMC4zOTA2MjUgMC40MDYyNSwwLjM5MDYyNSAwLjI1LDAgMC40NTMxMjUsLTAuMjAzMTI1IDAuNTE1NjI1LC0wLjM1OTM3NSBsIDAuNjg3NSwtMi43MTg3NSBDIDIuNSwtMy4yNSAyLjU5Mzc1LC0zLjU2MjUgMi42NzE4NzUsLTMuOTA2MjUgMi44MjgxMjUsLTQuNTMxMjUgMi44MjgxMjUsLTQuNTQ2ODc1IDMuMTI1LC00Ljk4NDM3NSAzLjQwNjI1LC01LjQyMTg3NSA0LjA3ODEyNSwtNi4zMTI1IDUuMjM0Mzc1LC02LjMxMjUgYyAwLjU5Mzc1LDAgMC44MTI1LDAuNDUzMTI1IDAuODEyNSwxLjA0Njg3NSAwLDAuODQzNzUgLTAuNTkzNzUsMi40Njg3NSAtMC45MjE4NzUsMy4zNzUgQyA1LC0xLjUzMTI1IDQuOTIxODc1LC0xLjMyODEyNSA0LjkyMTg3NSwtMS4wNjI1IGMgMCwwLjY3MTg3NSAwLjQ2ODc1LDEuMjE4NzUgMS4xODc1LDEuMjE4NzUgMS4zOTA2MjUsMCAxLjkyMTg3NSwtMi4yMTg3NSAxLjkyMTg3NSwtMi4yOTY4NzUgMCwtMC4wNzgxMjUgLTAuMDYyNSwtMC4xNDA2MjUgLTAuMTU2MjUsLTAuMTQwNjI1IC0wLjE0MDYyNSwwIC0wLjE1NjI1LDAuMDQ2ODc1IC0wLjIxODc1LDAuMjk2ODc1IEMgNy4zMTI1LC0wLjc4MTI1IDYuNzUsLTAuMTU2MjUgNi4xNTYyNSwtMC4xNTYyNSA2LC0wLjE1NjI1IDUuNzY1NjI1LC0wLjE3MTg3NSA1Ljc2NTYyNSwtMC42NDA2MjUgNS43NjU2MjUsLTEuMDMxMjUgNS45Mzc1LC0xLjUxNTYyNSA2LC0xLjY4NzUgYyAwLjI2NTYyNSwtMC43MTg3NSAwLjkzNzUsLTIuNDg0Mzc1IDAuOTM3NSwtMy4zNTkzNzUgMCwtMC44OTA2MjUgLTAuNTE1NjI1LC0xLjU2MjUgLTEuNjU2MjUsLTEuNTYyNSAtMC44NTkzNzUsMCAtMS42MDkzNzUsMC40MDYyNSAtMi4yMTg3NSwxLjE3MTg3NSB6IG0gMCwwIgogICAgICAgICAgIGlkPSJwYXRoNTMiIC8+CiAgICAgIDwvc3ltYm9sPgogICAgICA8c3ltYm9sCiAgICAgICAgIG92ZXJmbG93PSJ2aXNpYmxlIgogICAgICAgICBpZD0iZ2x5cGg2LTAiPgogICAgICAgIDxwYXRoCiAgICAgICAgICAgc3R5bGU9InN0cm9rZTpub25lIgogICAgICAgICAgIGQ9IiIKICAgICAgICAgICBpZD0icGF0aDU2IiAvPgogICAgICA8L3N5bWJvbD4KICAgICAgPHN5bWJvbAogICAgICAgICBvdmVyZmxvdz0idmlzaWJsZSIKICAgICAgICAgaWQ9ImdseXBoNi0xIj4KICAgICAgICA8cGF0aAogICAgICAgICAgIHN0eWxlPSJzdHJva2U6bm9uZSIKICAgICAgICAgICBkPSJNIDUuOTg0Mzc1LC0zLjQ2ODc1IEggMTAuMTI1IGMgMC4yMDMxMjUsMCAwLjQ4NDM3NSwwIDAuNDg0Mzc1LC0wLjI2NTYyNSAwLC0wLjI4MTI1IC0wLjI2NTYyNSwtMC4yODEyNSAtMC40ODQzNzUsLTAuMjgxMjUgSCA1Ljk4NDM3NSBWIC04LjE1NjI1IGMgMCwtMC4yMTg3NSAwLC0wLjQ4NDM3NSAtMC4yNjU2MjUsLTAuNDg0Mzc1IC0wLjI4MTI1LDAgLTAuMjgxMjUsMC4yNSAtMC4yODEyNSwwLjQ4NDM3NSB2IDQuMTQwNjI1IEggMS4yOTY4NzUgYyAtMC4yMTg3NSwwIC0wLjQ4NDM3NSwwIC0wLjQ4NDM3NSwwLjI2NTYyNSAwLDAuMjgxMjUgMC4yNSwwLjI4MTI1IDAuNDg0Mzc1LDAuMjgxMjUgSCA1LjQzNzUgdiA0LjE0MDYyNSBjIDAsMC4yMTg3NSAwLDAuNDg0Mzc1IDAuMjY1NjI1LDAuNDg0Mzc1IDAuMjgxMjUsMCAwLjI4MTI1LC0wLjI1IDAuMjgxMjUsLTAuNDg0Mzc1IHogbSAwLDAiCiAgICAgICAgICAgaWQ9InBhdGg1OSIgLz4KICAgICAgPC9zeW1ib2w+CiAgICA8L2c+CiAgPC9kZWZzPgogIDxnCiAgICAgaWQ9Imc1NTgiCiAgICAgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTEwMC4xOTkyMiwtNzEuOTk5OTMzKSI+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6IzU3NmU3MztzdHJva2Utd2lkdGg6MC43OTcwMTtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2Utb3BhY2l0eToxIgogICAgICAgZD0ibSAxODguNDQxNDEsOTYuMzA4NTk0IGMgMCwtMTMuMjA3MDMxIC0xMC43MDMxMywtMjMuOTEwMTU2IC0yMy45MTAxNiwtMjMuOTEwMTU2IC0xMy4yMDcwMywwIC0yMy45MTAxNiwxMC43MDMxMjUgLTIzLjkxMDE2LDIzLjkxMDE1NiAwLDEzLjIwNzAzNiAxMC43MDMxMywyMy45MTAxNTYgMjMuOTEwMTYsMjMuOTEwMTU2IDEzLjIwNzAzLDAgMjMuOTEwMTYsLTEwLjcwMzEyIDIzLjkxMDE2LC0yMy45MTAxNTYgeiBtIDAsMCIKICAgICAgIGlkPSJwYXRoNjgiIC8+CiAgICA8dXNlCiAgICAgICB4bGluazpocmVmPSIjZ2x5cGgwLTEiCiAgICAgICB4PSIxNTAuMDQ5IgogICAgICAgeT0iOTcuNTU4OTk4IgogICAgICAgaWQ9InVzZTcwIgogICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICBoZWlnaHQ9IjEwMCUiCiAgICAgICBzdHlsZT0iZmlsbDojZDEzNTdmO2ZpbGwtb3BhY2l0eToxIiAvPgogICAgPHVzZQogICAgICAgeGxpbms6aHJlZj0iI2dseXBoMS0xIgogICAgICAgeD0iMTU5LjU0MjAxIgogICAgICAgeT0iMTAwLjcyNSIKICAgICAgIGlkPSJ1c2U3NCIKICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgaGVpZ2h0PSIxMDAlIgogICAgICAgc3R5bGU9ImZpbGw6I2QxMzU3ZjtmaWxsLW9wYWNpdHk6MSIgLz4KICAgIDx1c2UKICAgICAgIHhsaW5rOmhyZWY9IiNnbHlwaDItMSIKICAgICAgIHg9IjE2My4zMDYiCiAgICAgICB5PSIxMDAuNzI1IgogICAgICAgaWQ9InVzZTc4IgogICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICBoZWlnaHQ9IjEwMCUiCiAgICAgICBzdHlsZT0iZmlsbDojZDEzNTdmO2ZpbGwtb3BhY2l0eToxIiAvPgogICAgPHVzZQogICAgICAgeGxpbms6aHJlZj0iI2dseXBoMy0xIgogICAgICAgeD0iMTcyLjYzOTAxIgogICAgICAgeT0iMTAwLjcyNSIKICAgICAgIGlkPSJ1c2U4MiIKICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgaGVpZ2h0PSIxMDAlIgogICAgICAgc3R5bGU9ImZpbGw6I2QxMzU3ZjtmaWxsLW9wYWNpdHk6MSIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojNTc2ZTczO3N0cm9rZS13aWR0aDowLjc5NzAxO3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgICBkPSJtIDI4Ny42NTYyNSw5Ni4zMDg1OTQgYyAwLC0xMy4yMDcwMzEgLTEwLjcwNzAzLC0yMy45MTAxNTYgLTIzLjkxMDE2LC0yMy45MTAxNTYgLTEzLjIwNzAzLDAgLTIzLjkxMDE1LDEwLjcwMzEyNSAtMjMuOTEwMTUsMjMuOTEwMTU2IDAsMTMuMjA3MDM2IDEwLjcwMzEyLDIzLjkxMDE1NiAyMy45MTAxNSwyMy45MTAxNTYgMTMuMjAzMTMsMCAyMy45MTAxNiwtMTAuNzAzMTIgMjMuOTEwMTYsLTIzLjkxMDE1NiB6IG0gMCwwIgogICAgICAgaWQ9InBhdGg4NiIgLz4KICAgIDx1c2UKICAgICAgIHhsaW5rOmhyZWY9IiNnbHlwaDAtMiIKICAgICAgIHg9IjI1Ny40NTA5OSIKICAgICAgIHk9Ijk4LjA1ODk5OCIKICAgICAgIGlkPSJ1c2U4OCIKICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgaGVpZ2h0PSIxMDAlIgogICAgICAgc3R5bGU9ImZpbGw6I2QxMzU3ZjtmaWxsLW9wYWNpdHk6MSIgLz4KICAgIDx1c2UKICAgICAgIHhsaW5rOmhyZWY9IiNnbHlwaDEtMSIKICAgICAgIHg9IjI2NS43NzcwMSIKICAgICAgIHk9IjEwMS4yMjUiCiAgICAgICBpZD0idXNlOTIiCiAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgIGhlaWdodD0iMTAwJSIKICAgICAgIHN0eWxlPSJmaWxsOiNkMTM1N2Y7ZmlsbC1vcGFjaXR5OjEiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6IzU3NmU3MztzdHJva2Utd2lkdGg6MC43OTcwMTtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2Utb3BhY2l0eToxIgogICAgICAgZD0ibSAzNTguNTIzNDQsOTYuMzA4NTk0IGMgMCwtMTMuMjA3MDMxIC0xMC43MDcwMywtMjMuOTEwMTU2IC0yMy45MTAxNiwtMjMuOTEwMTU2IC0xMy4yMDcwMywwIC0yMy45MTAxNiwxMC43MDMxMjUgLTIzLjkxMDE2LDIzLjkxMDE1NiAwLDEzLjIwNzAzNiAxMC43MDMxMywyMy45MTAxNTYgMjMuOTEwMTYsMjMuOTEwMTU2IDEzLjIwMzEzLDAgMjMuOTEwMTYsLTEwLjcwMzEyIDIzLjkxMDE2LC0yMy45MTAxNTYgeiBtIDAsMCIKICAgICAgIGlkPSJwYXRoOTYiIC8+CiAgICA8dXNlCiAgICAgICB4bGluazpocmVmPSIjZ2x5cGgwLTEiCiAgICAgICB4PSIzMjcuNzM0MDEiCiAgICAgICB5PSI5OC4wNTg5OTgiCiAgICAgICBpZD0idXNlOTgiCiAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgIGhlaWdodD0iMTAwJSIKICAgICAgIHN0eWxlPSJmaWxsOiNkMTM1N2Y7ZmlsbC1vcGFjaXR5OjEiIC8+CiAgICA8dXNlCiAgICAgICB4bGluazpocmVmPSIjZ2x5cGgxLTEiCiAgICAgICB4PSIzMzcuMjI2OTkiCiAgICAgICB5PSIxMDEuMjI1IgogICAgICAgaWQ9InVzZTEwMiIKICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgaGVpZ2h0PSIxMDAlIgogICAgICAgc3R5bGU9ImZpbGw6I2QxMzU3ZjtmaWxsLW9wYWNpdHk6MSIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojNTc2ZTczO3N0cm9rZS13aWR0aDowLjc5NzAxO3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgICBkPSJtIDEwMC4xOTkyMiw5Ni4zMDg1OTQgaCAzNy40MzM1OSIKICAgICAgIGlkPSJwYXRoMTA2IiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOiM1NzZlNzM7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOm5vbmUiCiAgICAgICBkPSJtIDE0MC4yMjI2Niw5Ni4zMDg1OTQgLTQuMTQ0NTQsLTIuMDcwMzEzIDEuNTU0NjksMi4wNzAzMTMgLTEuNTU0NjksMi4wNzQyMTgiCiAgICAgICBpZD0icGF0aDEwOCIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojNTc2ZTczO3N0cm9rZS13aWR0aDowLjc5NzAxO3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgICBkPSJtIDE4OC44Mzk4NCw5Ni4zMDg1OTQgaCA0OC4wMDM5MSIKICAgICAgIGlkPSJwYXRoMTEwIiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOiM1NzZlNzM7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOm5vbmUiCiAgICAgICBkPSJtIDIzOS40Mzc1LDk2LjMwODU5NCAtNC4xNDQ1MywtMi4wNzAzMTMgMS41NTA3OCwyLjA3MDMxMyAtMS41NTA3OCwyLjA3NDIxOCIKICAgICAgIGlkPSJwYXRoMTEyIiAvPgogICAgPHVzZQogICAgICAgeGxpbms6aHJlZj0iI2dseXBoNC0xIgogICAgICAgeD0iMTk1LjI4NSIKICAgICAgIHk9Ijg5LjI0NDAwMyIKICAgICAgIGlkPSJ1c2UxMTQiCiAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgIGhlaWdodD0iMTAwJSIKICAgICAgIHN0eWxlPSJmaWxsOiNkMTM1N2Y7ZmlsbC1vcGFjaXR5OjEiIC8+CiAgICA8dXNlCiAgICAgICB4bGluazpocmVmPSIjZ2x5cGgxLTEiCiAgICAgICB4PSIyMTAuMDc1IgogICAgICAgeT0iOTIuNDEwMDA0IgogICAgICAgaWQ9InVzZTExOCIKICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgaGVpZ2h0PSIxMDAlIgogICAgICAgc3R5bGU9ImZpbGw6I2QxMzU3ZjtmaWxsLW9wYWNpdHk6MSIgLz4KICAgIDx1c2UKICAgICAgIHhsaW5rOmhyZWY9IiNnbHlwaDUtMSIKICAgICAgIHg9IjIxNC4zMzcwMSIKICAgICAgIHk9Ijg5LjI0NDAwMyIKICAgICAgIGlkPSJ1c2UxMjIiCiAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgIGhlaWdodD0iMTAwJSIKICAgICAgIHN0eWxlPSJmaWxsOiNkMTM1N2Y7ZmlsbC1vcGFjaXR5OjEiIC8+CiAgICA8dXNlCiAgICAgICB4bGluazpocmVmPSIjZ2x5cGgwLTMiCiAgICAgICB4PSIyMjAuOTE3MDEiCiAgICAgICB5PSI4OS4yNDQwMDMiCiAgICAgICBpZD0idXNlMTI2IgogICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICBoZWlnaHQ9IjEwMCUiCiAgICAgICBzdHlsZT0iZmlsbDojZDEzNTdmO2ZpbGwtb3BhY2l0eToxIiAvPgogICAgPHVzZQogICAgICAgeGxpbms6aHJlZj0iI2dseXBoMS0xIgogICAgICAgeD0iMjI4LjcyOSIKICAgICAgIHk9IjkyLjQxMDAwNCIKICAgICAgIGlkPSJ1c2UxMzAiCiAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgIGhlaWdodD0iMTAwJSIKICAgICAgIHN0eWxlPSJmaWxsOiNkMTM1N2Y7ZmlsbC1vcGFjaXR5OjEiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6IzU3NmU3MztzdHJva2Utd2lkdGg6MC43OTcwMTtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2Utb3BhY2l0eToxIgogICAgICAgZD0ibSAyODguMDU0NjksOTYuMzA4NTk0IGggMTkuNjU2MjUiCiAgICAgICBpZD0icGF0aDEzNCIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDojNTc2ZTczO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lIgogICAgICAgZD0ibSAzMTAuMzAwNzgsOTYuMzA4NTk0IC00LjE0MDYyLC0yLjA3MDMxMyAxLjU1MDc4LDIuMDcwMzEzIC0xLjU1MDc4LDIuMDc0MjE4IgogICAgICAgaWQ9InBhdGgxMzYiIC8+CiAgICA8dXNlCiAgICAgICB4bGluazpocmVmPSIjZ2x5cGg1LTIiCiAgICAgICB4PSIyOTIuODIwMDEiCiAgICAgICB5PSI4OS4yNDQwMDMiCiAgICAgICBpZD0idXNlMTM4IgogICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICBoZWlnaHQ9IjEwMCUiCiAgICAgICBzdHlsZT0iZmlsbDojZDEzNTdmO2ZpbGwtb3BhY2l0eToxIiAvPgogICAgPHVzZQogICAgICAgeGxpbms6aHJlZj0iI2dseXBoMS0xIgogICAgICAgeD0iMzAxLjI3NDk5IgogICAgICAgeT0iOTIuNDEwMDA0IgogICAgICAgaWQ9InVzZTE0MiIKICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgaGVpZ2h0PSIxMDAlIgogICAgICAgc3R5bGU9ImZpbGw6I2QxMzU3ZjtmaWxsLW9wYWNpdHk6MSIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojNTc2ZTczO3N0cm9rZS13aWR0aDowLjc5NzAxO3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgICBkPSJtIDM1OC45MjE4Nyw5Ni4zMDg1OTQgaCA0NC41MTk1NCIKICAgICAgIGlkPSJwYXRoMTQ2IiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOiM1NzZlNzM7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOm5vbmUiCiAgICAgICBkPSJtIDQwNi4wMzEyNSw5Ni4zMDg1OTQgLTQuMTQ0NTMsLTIuMDcwMzEzIDEuNTU0NjksMi4wNzAzMTMgLTEuNTU0NjksMi4wNzQyMTgiCiAgICAgICBpZD0icGF0aDE0OCIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojNTc2ZTczO3N0cm9rZS13aWR0aDowLjc5NzAxO3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgICBkPSJtIDE4OC40NDE0MSwxNTMuMDAzOTEgYyAwLC0xMy4yMDcwNCAtMTAuNzAzMTMsLTIzLjkxMDE2IC0yMy45MTAxNiwtMjMuOTEwMTYgLTEzLjIwNzAzLDAgLTIzLjkxMDE2LDEwLjcwMzEyIC0yMy45MTAxNiwyMy45MTAxNiAwLDEzLjIwMzEyIDEwLjcwMzEzLDIzLjkxMDE1IDIzLjkxMDE2LDIzLjkxMDE1IDEzLjIwNzAzLDAgMjMuOTEwMTYsLTEwLjcwNzAzIDIzLjkxMDE2LC0yMy45MTAxNSB6IG0gMCwwIgogICAgICAgaWQ9InBhdGgxNTAiIC8+CiAgICA8dXNlCiAgICAgICB4bGluazpocmVmPSIjZ2x5cGgwLTEiCiAgICAgICB4PSIxNTAuMDQ5IgogICAgICAgeT0iMTU0LjI1MzAxIgogICAgICAgaWQ9InVzZTE1MiIKICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgaGVpZ2h0PSIxMDAlIgogICAgICAgc3R5bGU9ImZpbGw6I2QxMzU3ZjtmaWxsLW9wYWNpdHk6MSIgLz4KICAgIDx1c2UKICAgICAgIHhsaW5rOmhyZWY9IiNnbHlwaDEtMSIKICAgICAgIHg9IjE1OS41NDIwMSIKICAgICAgIHk9IjE1Ny40MTkwMSIKICAgICAgIGlkPSJ1c2UxNTYiCiAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgIGhlaWdodD0iMTAwJSIKICAgICAgIHN0eWxlPSJmaWxsOiNkMTM1N2Y7ZmlsbC1vcGFjaXR5OjEiIC8+CiAgICA8dXNlCiAgICAgICB4bGluazpocmVmPSIjZ2x5cGgyLTEiCiAgICAgICB4PSIxNjMuMzA2IgogICAgICAgeT0iMTU3LjQxOTAxIgogICAgICAgaWQ9InVzZTE2MCIKICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgaGVpZ2h0PSIxMDAlIgogICAgICAgc3R5bGU9ImZpbGw6I2QxMzU3ZjtmaWxsLW9wYWNpdHk6MSIgLz4KICAgIDx1c2UKICAgICAgIHhsaW5rOmhyZWY9IiNnbHlwaDMtMSIKICAgICAgIHg9IjE3Mi42MzkwMSIKICAgICAgIHk9IjE1Ny40MTkwMSIKICAgICAgIGlkPSJ1c2UxNjQiCiAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgIGhlaWdodD0iMTAwJSIKICAgICAgIHN0eWxlPSJmaWxsOiNkMTM1N2Y7ZmlsbC1vcGFjaXR5OjEiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6IzU3NmU3MztzdHJva2Utd2lkdGg6MC43OTcwMTtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2Utb3BhY2l0eToxIgogICAgICAgZD0ibSAyODcuNjU2MjUsMTUzLjAwMzkxIGMgMCwtMTMuMjA3MDQgLTEwLjcwNzAzLC0yMy45MTAxNiAtMjMuOTEwMTYsLTIzLjkxMDE2IC0xMy4yMDcwMywwIC0yMy45MTAxNSwxMC43MDMxMiAtMjMuOTEwMTUsMjMuOTEwMTYgMCwxMy4yMDMxMiAxMC43MDMxMiwyMy45MTAxNSAyMy45MTAxNSwyMy45MTAxNSAxMy4yMDMxMywwIDIzLjkxMDE2LC0xMC43MDcwMyAyMy45MTAxNiwtMjMuOTEwMTUgeiBtIDAsMCIKICAgICAgIGlkPSJwYXRoMTY4IiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiM1NzZlNzM7c3Ryb2tlLXdpZHRoOjAuNzk3MDE7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgIGQ9Im0gMzU4LjUyMzQ0LDE1My4wMDM5MSBjIDAsLTEzLjIwNzA0IC0xMC43MDcwMywtMjMuOTEwMTYgLTIzLjkxMDE2LC0yMy45MTAxNiAtMTMuMjA3MDMsMCAtMjMuOTEwMTYsMTAuNzAzMTIgLTIzLjkxMDE2LDIzLjkxMDE2IDAsMTMuMjAzMTIgMTAuNzAzMTMsMjMuOTEwMTUgMjMuOTEwMTYsMjMuOTEwMTUgMTMuMjAzMTMsMCAyMy45MTAxNiwtMTAuNzA3MDMgMjMuOTEwMTYsLTIzLjkxMDE1IHogbSAwLDAiCiAgICAgICBpZD0icGF0aDE3MCIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojNTc2ZTczO3N0cm9rZS13aWR0aDowLjc5NzAxO3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgICBkPSJtIDQ1NC43MzgyOCwxNTMuMDAzOTEgLTIzLjc0NjA5LC0yMy43NDYxIC0yMy43NDYxLDIzLjc0NjEgMjMuNzQ2MSwyMy43NDYwOSB6IG0gMCwwIgogICAgICAgaWQ9InBhdGgxNzIiIC8+CiAgICA8dXNlCiAgICAgICB4bGluazpocmVmPSIjZ2x5cGg2LTEiCiAgICAgICB4PSI0MjUuMjc4OTkiCiAgICAgICB5PSIxNTYuNzUzMDEiCiAgICAgICBpZD0idXNlMTc0IgogICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICBoZWlnaHQ9IjEwMCUiCiAgICAgICBzdHlsZT0iZmlsbDojZDEzNTdmO2ZpbGwtb3BhY2l0eToxIiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiM1NzZlNzM7c3Ryb2tlLXdpZHRoOjAuNzk3MDE7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgIGQ9Im0gNTI1Ljc2OTUzLDE1My4wMDM5MSBjIDAsLTEzLjIwNzA0IC0xMC43MDcwMywtMjMuOTEwMTYgLTIzLjkxMDE2LC0yMy45MTAxNiAtMTMuMjA3MDMsMCAtMjMuOTE0MDYsMTAuNzAzMTIgLTIzLjkxNDA2LDIzLjkxMDE2IDAsMTMuMjAzMTIgMTAuNzA3MDMsMjMuOTEwMTUgMjMuOTE0MDYsMjMuOTEwMTUgMTMuMjAzMTMsMCAyMy45MTAxNiwtMTAuNzA3MDMgMjMuOTEwMTYsLTIzLjkxMDE1IHogbSAwLDAiCiAgICAgICBpZD0icGF0aDE3OCIgLz4KICAgIDx1c2UKICAgICAgIHhsaW5rOmhyZWY9IiNnbHlwaDAtMiIKICAgICAgIHg9IjQ5NS41NjQiCiAgICAgICB5PSIxNTQuNzUzMDEiCiAgICAgICBpZD0idXNlMTgwIgogICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICBoZWlnaHQ9IjEwMCUiCiAgICAgICBzdHlsZT0iZmlsbDojZDEzNTdmO2ZpbGwtb3BhY2l0eToxIiAvPgogICAgPHVzZQogICAgICAgeGxpbms6aHJlZj0iI2dseXBoMS0xIgogICAgICAgeD0iNTAzLjg5MDAxIgogICAgICAgeT0iMTU3LjkxOTAxIgogICAgICAgaWQ9InVzZTE4NCIKICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgaGVpZ2h0PSIxMDAlIgogICAgICAgc3R5bGU9ImZpbGw6I2QxMzU3ZjtmaWxsLW9wYWNpdHk6MSIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojNTc2ZTczO3N0cm9rZS13aWR0aDowLjc5NzAxO3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgICBkPSJtIDU5Ni42MzY3MiwxNTMuMDAzOTEgYyAwLC0xMy4yMDcwNCAtMTAuNzA3MDMsLTIzLjkxMDE2IC0yMy45MTAxNiwtMjMuOTEwMTYgLTEzLjIwNzAzLDAgLTIzLjkxNDA2LDEwLjcwMzEyIC0yMy45MTQwNiwyMy45MTAxNiAwLDEzLjIwMzEyIDEwLjcwNzAzLDIzLjkxMDE1IDIzLjkxNDA2LDIzLjkxMDE1IDEzLjIwMzEzLDAgMjMuOTEwMTYsLTEwLjcwNzAzIDIzLjkxMDE2LC0yMy45MTAxNSB6IG0gMCwwIgogICAgICAgaWQ9InBhdGgxODgiIC8+CiAgICA8dXNlCiAgICAgICB4bGluazpocmVmPSIjZ2x5cGgwLTEiCiAgICAgICB4PSI1NjUuODQ2OTgiCiAgICAgICB5PSIxNTQuNzUzMDEiCiAgICAgICBpZD0idXNlMTkwIgogICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICBoZWlnaHQ9IjEwMCUiCiAgICAgICBzdHlsZT0iZmlsbDojZDEzNTdmO2ZpbGwtb3BhY2l0eToxIiAvPgogICAgPHVzZQogICAgICAgeGxpbms6aHJlZj0iI2dseXBoMS0xIgogICAgICAgeD0iNTc1LjM0MDAzIgogICAgICAgeT0iMTU3LjkxOTAxIgogICAgICAgaWQ9InVzZTE5NCIKICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgaGVpZ2h0PSIxMDAlIgogICAgICAgc3R5bGU9ImZpbGw6I2QxMzU3ZjtmaWxsLW9wYWNpdHk6MSIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojNTc2ZTczO3N0cm9rZS13aWR0aDowLjc5NzAxO3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgICBkPSJtIDEwMC4xOTkyMiwxNTMuMDAzOTEgaCAzNy40MzM1OSIKICAgICAgIGlkPSJwYXRoMTk4IiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOiM1NzZlNzM7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOm5vbmUiCiAgICAgICBkPSJtIDE0MC4yMjI2NiwxNTMuMDAzOTEgLTQuMTQ0NTQsLTIuMDc0MjIgMS41NTQ2OSwyLjA3NDIyIC0xLjU1NDY5LDIuMDcwMzEiCiAgICAgICBpZD0icGF0aDIwMCIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojNTc2ZTczO3N0cm9rZS13aWR0aDowLjc5NzAxO3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgICBkPSJtIDE4OC44Mzk4NCwxNTMuMDAzOTEgaCA0OC4wMDM5MSIKICAgICAgIGlkPSJwYXRoMjAyIiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOiM1NzZlNzM7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOm5vbmUiCiAgICAgICBkPSJtIDIzOS40Mzc1LDE1My4wMDM5MSAtNC4xNDQ1MywtMi4wNzQyMiAxLjU1MDc4LDIuMDc0MjIgLTEuNTUwNzgsMi4wNzAzMSIKICAgICAgIGlkPSJwYXRoMjA0IiAvPgogICAgPHVzZQogICAgICAgeGxpbms6aHJlZj0iI2dseXBoNC0yIgogICAgICAgeD0iMTk1LjA1OTAxIgogICAgICAgeT0iMTQ2LjE4OCIKICAgICAgIGlkPSJ1c2UyMDYiCiAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgIGhlaWdodD0iMTAwJSIKICAgICAgIHN0eWxlPSJmaWxsOiNkMTM1N2Y7ZmlsbC1vcGFjaXR5OjEiIC8+CiAgICA8dXNlCiAgICAgICB4bGluazpocmVmPSIjZ2x5cGgzLTEiCiAgICAgICB4PSIyMDYuMTg5IgogICAgICAgeT0iMTQ4Ljc1NSIKICAgICAgIGlkPSJ1c2UyMTAiCiAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgIGhlaWdodD0iMTAwJSIKICAgICAgIHN0eWxlPSJmaWxsOiNkMTM1N2Y7ZmlsbC1vcGFjaXR5OjEiIC8+CiAgICA8dXNlCiAgICAgICB4bGluazpocmVmPSIjZ2x5cGg1LTEiCiAgICAgICB4PSIyMTIuNTYyIgogICAgICAgeT0iMTQ2LjE4OCIKICAgICAgIGlkPSJ1c2UyMTQiCiAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgIGhlaWdodD0iMTAwJSIKICAgICAgIHN0eWxlPSJmaWxsOiNkMTM1N2Y7ZmlsbC1vcGFjaXR5OjEiIC8+CiAgICA8dXNlCiAgICAgICB4bGluazpocmVmPSIjZ2x5cGgwLTQiCiAgICAgICB4PSIyMTkuMTQyIgogICAgICAgeT0iMTQ2LjE4OCIKICAgICAgIGlkPSJ1c2UyMTgiCiAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgIGhlaWdodD0iMTAwJSIKICAgICAgIHN0eWxlPSJmaWxsOiNkMTM1N2Y7ZmlsbC1vcGFjaXR5OjEiIC8+CiAgICA8dXNlCiAgICAgICB4bGluazpocmVmPSIjZ2x5cGgzLTEiCiAgICAgICB4PSIyMjYuODQzIgogICAgICAgeT0iMTQ4Ljc1NSIKICAgICAgIGlkPSJ1c2UyMjIiCiAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgIGhlaWdodD0iMTAwJSIKICAgICAgIHN0eWxlPSJmaWxsOiNkMTM1N2Y7ZmlsbC1vcGFjaXR5OjEiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6IzU3NmU3MztzdHJva2Utd2lkdGg6MC43OTcwMTtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2Utb3BhY2l0eToxIgogICAgICAgZD0ibSAyODguMDU0NjksMTUzLjAwMzkxIGggMTkuNjU2MjUiCiAgICAgICBpZD0icGF0aDIyNiIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDojNTc2ZTczO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lIgogICAgICAgZD0ibSAzMTAuMzAwNzgsMTUzLjAwMzkxIC00LjE0MDYyLC0yLjA3NDIyIDEuNTUwNzgsMi4wNzQyMiAtMS41NTA3OCwyLjA3MDMxIgogICAgICAgaWQ9InBhdGgyMjgiIC8+CiAgICA8dXNlCiAgICAgICB4bGluazpocmVmPSIjZ2x5cGg1LTIiCiAgICAgICB4PSIyOTQuOTUwOTkiCiAgICAgICB5PSIxNDkuMTA0IgogICAgICAgaWQ9InVzZTIzMCIKICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgaGVpZ2h0PSIxMDAlIgogICAgICAgc3R5bGU9ImZpbGw6I2QxMzU3ZjtmaWxsLW9wYWNpdHk6MSIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojNTc2ZTczO3N0cm9rZS13aWR0aDowLjc5NzAxO3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgICBkPSJtIDM1OC45MjE4NywxNTMuMDAzOTEgaCA0NS4xNjc5NyIKICAgICAgIGlkPSJwYXRoMjM0IiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOiM1NzZlNzM7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOm5vbmUiCiAgICAgICBkPSJtIDQwNi42Nzk2OSwxNTMuMDAzOTEgLTQuMTQ0NTMsLTIuMDc0MjIgMS41NTQ2OCwyLjA3NDIyIC0xLjU1NDY4LDIuMDcwMzEiCiAgICAgICBpZD0icGF0aDIzNiIgLz4KICAgIDx1c2UKICAgICAgIHhsaW5rOmhyZWY9IiNnbHlwaDQtMiIKICAgICAgIHg9IjM2My43MjEwMSIKICAgICAgIHk9IjE0Ni4xODgiCiAgICAgICBpZD0idXNlMjM4IgogICAgICAgd2lkdGg9IjEwMCUiCiAgICAgICBoZWlnaHQ9IjEwMCUiCiAgICAgICBzdHlsZT0iZmlsbDojZDEzNTdmO2ZpbGwtb3BhY2l0eToxIiAvPgogICAgPHVzZQogICAgICAgeGxpbms6aHJlZj0iI2dseXBoMy0yIgogICAgICAgeD0iMzc0Ljg1MTAxIgogICAgICAgeT0iMTQ4Ljc1NSIKICAgICAgIGlkPSJ1c2UyNDIiCiAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgIGhlaWdodD0iMTAwJSIKICAgICAgIHN0eWxlPSJmaWxsOiNkMTM1N2Y7ZmlsbC1vcGFjaXR5OjEiIC8+CiAgICA8dXNlCiAgICAgICB4bGluazpocmVmPSIjZ2x5cGg1LTEiCiAgICAgICB4PSIzODEuMjI0IgogICAgICAgeT0iMTQ2LjE4OCIKICAgICAgIGlkPSJ1c2UyNDYiCiAgICAgICB3aWR0aD0iMTAwJSIKICAgICAgIGhlaWdodD0iMTAwJSIKICAgICAgIHN0eWxlPSJmaWxsOiNkMTM1N2Y7ZmlsbC1vcGFjaXR5OjEiIC8+CiAgICA8dXNlCiAgICAgICB4bGluazpocmVmPSIjZ2x5cGgwLTQiCiAgICAgICB4PSIzODcuODAzOTkiCiAgICAgICB5PSIxNDYuMTg4IgogICAgICAgaWQ9InVzZTI1MCIKICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgaGVpZ2h0PSIxMDAlIgogICAgICAgc3R5bGU9ImZpbGw6I2QxMzU3ZjtmaWxsLW9wYWNpdHk6MSIgLz4KICAgIDx1c2UKICAgICAgIHhsaW5rOmhyZWY9IiNnbHlwaDMtMiIKICAgICAgIHg9IjM5NS41MDUiCiAgICAgICB5PSIxNDguNzU1IgogICAgICAgaWQ9InVzZTI1NCIKICAgICAgIHdpZHRoPSIxMDAlIgogICAgICAgaGVpZ2h0PSIxMDAlIgogICAgICAgc3R5bGU9ImZpbGw6I2QxMzU3ZjtmaWxsLW9wYWNpdHk6MSIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojNTc2ZTczO3N0cm9rZS13aWR0aDowLjc5NzAxO3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgICBkPSJtIDQ1NS4zMDA3OCwxNTMuMDAzOTEgaCAxOS42NTYyNSIKICAgICAgIGlkPSJwYXRoMjU4IiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOiM1NzZlNzM7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOm5vbmUiCiAgICAgICBkPSJtIDQ3Ny41NDY4NywxNTMuMDAzOTEgLTQuMTQ0NTMsLTIuMDc0MjIgMS41NTQ2OSwyLjA3NDIyIC0xLjU1NDY5LDIuMDcwMzEiCiAgICAgICBpZD0icGF0aDI2MCIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojNTc2ZTczO3N0cm9rZS13aWR0aDowLjc5NzAxO3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgICBkPSJtIDUyNi4xNjc5NywxNTMuMDAzOTEgaCAxOS42NTYyNSIKICAgICAgIGlkPSJwYXRoMjYyIiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOiM1NzZlNzM7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOm5vbmUiCiAgICAgICBkPSJtIDU0OC40MTQwNiwxNTMuMDAzOTEgLTQuMTQ0NTMsLTIuMDc0MjIgMS41NTQ2OSwyLjA3NDIyIC0xLjU1NDY5LDIuMDcwMzEiCiAgICAgICBpZD0icGF0aDI2NCIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojNTc2ZTczO3N0cm9rZS13aWR0aDowLjc5NzAxO3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgICBkPSJtIDE4NS41ODIwMywxNjUuMTU2MjUgYyA3Ny45ODA0Nyw0NS4wMTk1MyAxNTIuMDE5NTMsNDEuNzY1NjMgMjI3Ljc1MzkxLC0xLjk2MDk0IgogICAgICAgaWQ9InBhdGgyNjYiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImZpbGw6IzU3NmU3MztmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6bm9uZSIKICAgICAgIGQ9Im0gNDE1LjU3ODEyLDE2MS45MDIzNCAtNC42MjUsMC4yNzczNSAyLjM4MjgyLDEuMDE1NjIgLTAuMzEyNSwyLjU3NDIyIgogICAgICAgaWQ9InBhdGgyNjgiIC8+CiAgPC9nPgo8L3N2Zz4K" class="width75 center top2 bottom2">
<p>残差模块：<span class="mathjax-exps">$\zv_l = \av_{l-1} + \class{yellow}{\Uv_2 \cdot h(\Uv_1 \cdot \av_{l-1} + \cv_1) + \cv_2} = \av_{l-1} + \class{yellow}{f(\av_{l-1})}$</span></p>
<p>假设<span class="mathjax-exps">$\av_l = \zv_l$</span>，即残差模块输出不使用激活函数，对<span class="mathjax-exps">$\forall t \in [l]$</span>有</p>
<p>

$$
\begin{align*}
    \av_l &amp; = \av_{l-1} + f(\av_{l-1}) = \av_{l-2} + f(\av_{l-2}) + f(\av_{l-1}) \\
    &amp; = \cdots = \av_{l-t} + \sum_{i=l-t}^{l-1} f(\av_i)
\end{align*}
$$
</p>

<p>低层输入可以<span class="blue">恒等</span>传播到任意高层</p>
<div class="footer"><hr class="hr_bottom"><div class="multi_column"><h6 class="bottom_left">图神经网络导论</h6><h6 class="bottom_center">神经网络</h6><h6 class="bottom_right">tengzhang@hust.edu.cn</h6></div></div>
</section><section vertical="true" data-notes="" lineno="752" class="slide " data-line="752" data-h="8" data-v="2">
<div class="header"><img class="hust" src=""><div class="title"><hr class="hr_top"><h5>残差网络</h5></div></div>
<p>

$$
\begin{align*}
    \av_l = \av_{l-t} + \sum_{i=l-t}^{l-1} f(\av_i)
\end{align*}
$$
</p>

<p>由链式法则有</p>
<p>

$$
\begin{align*}
    \frac{\partial \Lcal}{\partial \av_{l-t}} &amp; = \frac{\partial \Lcal}{\partial \av_l} \frac{\partial \av_l}{\partial \av_{l-t}} = \frac{\partial \Lcal}{\partial \av_l} \left( \frac{\partial \av_{l-t}}{\partial \av_{l-t}} + \frac{\partial }{\partial \av_{l-t}} \sum_{i=l-t}^{l-1} f(\av_i) \right) \\
    &amp; = \frac{\partial \Lcal}{\partial \av_l} \left( \Iv + \frac{\partial }{\partial \av_{l-t}} \sum_{i=l-t}^{l-1} f(\av_i) \right) \\
    &amp; = \frac{\partial \Lcal}{\partial \av_l} + \frac{\partial \Lcal}{\partial \av_l} \left( \frac{\partial }{\partial \av_{l-t}} \sum_{i=l-t}^{l-1} f(\av_i) \right)
\end{align*}
$$
</p>

<p>高层误差可以<span class="blue">恒等</span>传播到任意低层，梯度消失得以缓解</p>
<div class="footer"><hr class="hr_bottom"><div class="multi_column"><h6 class="bottom_left">图神经网络导论</h6><h6 class="bottom_center">神经网络</h6><h6 class="bottom_right">tengzhang@hust.edu.cn</h6></div></div>
</section></section><section><section data-notes="" lineno="784" class="slide " data-line="784" data-h="9" data-v="0">
<div class="header"><img class="hust" src=""><div class="title"><hr class="hr_top"><h5>优化算法</h5></div></div>
<p>神经网络通常采用小批量梯度下降：</p>
<p>

$$
\begin{align*}
    \Wv^\top ~ \leftarrow ~ \Wv^\top - \frac{\eta}{|\Bcal|} \sum_{i \in \Bcal} \frac{\partial \Lcal (\yv_i, \hat{\yv}_i)}{\partial \Wv}
\end{align*}
$$
</p>

<p>批量大小<span class="mathjax-exps">$|\Bcal|$</span>不影响随机梯度的期望，但会影响方差</p>
<ul>
<li><span class="mathjax-exps">$|\Bcal|$</span>越大，方差越小，训练越稳定，可以采用较大的步长加快收敛</li>
<li><span class="mathjax-exps">$|\Bcal|$</span>越小，方差越大，需采用较小的步长，否则可能不收敛</li>
</ul>
<br>
<p>线性缩放规则：<span class="mathjax-exps">$|\Bcal|$</span>增加<span class="mathjax-exps">$k$</span>倍，步长也增加<span class="mathjax-exps">$k$</span>倍，但当<span class="mathjax-exps">$|\Bcal|$</span>特别大时，线性缩放也还是会出现训练不稳定</p>
<ul>
<li>步长调整</li>
<li>更新方向调整</li>
</ul>
<div class="footer"><hr class="hr_bottom"><div class="multi_column"><h6 class="bottom_left">图神经网络导论</h6><h6 class="bottom_center">神经网络</h6><h6 class="bottom_right">tengzhang@hust.edu.cn</h6></div></div>
</section><section vertical="true" data-notes="" lineno="814" class="slide " data-line="814" data-h="9" data-v="1">
<div class="header"><img class="hust" src=""><div class="title"><hr class="hr_top"><h5>步长调整</h5></div></div>
<p><!--?xml version="1.0" encoding="UTF-8" standalone="no"?-->

<!-- Generated by graphviz version 2.40.1 (20161225.0304)
 -->
<!-- Title: g Pages: 1 -->
<svg width="404pt" height="388pt" viewBox="0.00 0.00 404.36 388.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 384)">
<title>g</title>
<!-- 步长调整 -->
<g id="node1" class="node">
<title>步长调整</title>
<text text-anchor="middle" x="42.8768" y="-185.2" font-family="EBG,fzlz" font-size="16.00" fill="#b58900">步长调整</text>
</g>
<!-- 步长衰减 -->
<g id="node2" class="node">
<title>步长衰减</title>
<text text-anchor="middle" x="177.508" y="-271.2" font-family="EBG,fzlz" font-size="16.00" fill="#b58900">步长衰减</text>
</g>
<!-- 步长调整&#45;&gt;步长衰减 -->
<g id="edge1" class="edge">
<title>步长调整-&gt;步长衰减</title>
<path fill="none" stroke="#586e75" d="M71.0999,-208.0284C92.6414,-221.7887 122.3562,-240.77 144.9111,-255.1777"></path>
<polygon fill="#586e75" stroke="#586e75" points="149.322,-257.9953 143.8971,-257.1998 147.2152,-256.6495 145.1083,-255.3036 145.1083,-255.3036 145.1083,-255.3036 147.2152,-256.6495 146.3196,-253.4075 149.322,-257.9953 149.322,-257.9953"></polygon>
</g>
<!-- 步长预热 -->
<g id="node3" class="node">
<title>步长预热</title>
<text text-anchor="middle" x="177.508" y="-207.2" font-family="EBG,fzlz" font-size="16.00" fill="#b58900">步长预热</text>
</g>
<!-- 步长调整&#45;&gt;步长预热 -->
<g id="edge2" class="edge">
<title>步长调整-&gt;步长预热</title>
<path fill="none" stroke="#586e75" d="M85.8451,-197.0214C98.4813,-199.0863 112.4403,-201.3673 125.574,-203.5135"></path>
<polygon fill="#586e75" stroke="#586e75" points="130.7556,-204.3602 125.4582,-205.7743 128.2883,-203.957 125.8211,-203.5538 125.8211,-203.5538 125.8211,-203.5538 128.2883,-203.957 126.1839,-201.3332 130.7556,-204.3602 130.7556,-204.3602"></polygon>
</g>
<!-- 周期性步长 -->
<g id="node4" class="node">
<title>周期性步长</title>
<text text-anchor="middle" x="177.508" y="-164.2" font-family="EBG,fzlz" font-size="16.00" fill="#b58900">周期性步长</text>
</g>
<!-- 步长调整&#45;&gt;周期性步长 -->
<g id="edge3" class="edge">
<title>步长调整-&gt;周期性步长</title>
<path fill="none" stroke="#586e75" d="M85.8451,-183.2977C97.4268,-181.4912 110.1197,-179.5113 122.2699,-177.6161"></path>
<polygon fill="#586e75" stroke="#586e75" points="127.4391,-176.8098 122.8456,-179.8036 124.969,-177.1952 122.4988,-177.5805 122.4988,-177.5805 122.4988,-177.5805 124.969,-177.1952 122.152,-175.3574 127.4391,-176.8098 127.4391,-176.8098"></polygon>
</g>
<!-- 自适应步长 -->
<g id="node5" class="node">
<title>自适应步长</title>
<text text-anchor="middle" x="177.508" y="-78.2" font-family="EBG,fzlz" font-size="16.00" fill="#b58900">自适应步长</text>
</g>
<!-- 步长调整&#45;&gt;自适应步长 -->
<g id="edge4" class="edge">
<title>步长调整-&gt;自适应步长</title>
<path fill="none" stroke="#586e75" d="M65.7151,-171.8489C89.1183,-153.249 125.5036,-124.3312 150.3635,-104.5734"></path>
<polygon fill="#586e75" stroke="#586e75" points="154.5576,-101.2401 152.0432,-106.1126 152.6004,-102.7956 150.6433,-104.3511 150.6433,-104.3511 150.6433,-104.3511 152.6004,-102.7956 149.2433,-102.5897 154.5576,-101.2401 154.5576,-101.2401"></polygon>
</g>
<!-- 分段常数衰减 -->
<g id="node6" class="node">
<title>分段常数衰减</title>
<text text-anchor="middle" x="332.8088" y="-357.2" font-family="EBG,fzlz" font-size="16.00" fill="#b58900">分段常数衰减</text>
</g>
<!-- 步长衰减&#45;&gt;分段常数衰减 -->
<g id="edge5" class="edge">
<title>步长衰减-&gt;分段常数衰减</title>
<path fill="none" stroke="#586e75" d="M199.777,-294.165C217.7056,-308.122 243.9962,-327.1284 269.2624,-340 271.733,-341.2586 274.2922,-342.4731 276.9022,-343.6407"></path>
<polygon fill="#586e75" stroke="#586e75" points="281.6469,-345.6914 276.1646,-345.7731 279.3521,-344.6995 277.0572,-343.7077 277.0572,-343.7077 277.0572,-343.7077 279.3521,-344.6995 277.9499,-341.6423 281.6469,-345.6914 281.6469,-345.6914"></polygon>
</g>
<!-- 逆时衰减 -->
<g id="node7" class="node">
<title>逆时衰减</title>
<text text-anchor="middle" x="332.8088" y="-314.2" font-family="EBG,fzlz" font-size="16.00" fill="#b58900">逆时衰减</text>
</g>
<!-- 步长衰减&#45;&gt;逆时衰减 -->
<g id="edge6" class="edge">
<title>步长衰减-&gt;逆时衰减</title>
<path fill="none" stroke="#586e75" d="M221.1812,-288.0923C241.6962,-293.7726 266.1525,-300.5441 286.9375,-306.2991"></path>
<polygon fill="#586e75" stroke="#586e75" points="291.8617,-307.6625 286.4426,-308.4966 289.4524,-306.9954 287.043,-306.3282 287.043,-306.3282 287.043,-306.3282 289.4524,-306.9954 287.6435,-304.1598 291.8617,-307.6625 291.8617,-307.6625"></polygon>
</g>
<!-- (自然)指数衰减 -->
<g id="node8" class="node">
<title>(自然)指数衰减</title>
<text text-anchor="middle" x="332.8088" y="-271.2" font-family="EBG,fzlz" font-size="16.00" fill="#b58900">(自然)指数衰减</text>
</g>
<!-- 步长衰减&#45;&gt;(自然)指数衰减 -->
<g id="edge7" class="edge">
<title>步长衰减-&gt;(自然)指数衰减</title>
<path fill="none" stroke="#586e75" d="M221.1812,-276C235.851,-276 252.5362,-276 268.4532,-276"></path>
<polygon fill="#586e75" stroke="#586e75" points="273.8177,-276 268.8177,-278.2501 271.3177,-276 268.8177,-276.0001 268.8177,-276.0001 268.8177,-276.0001 271.3177,-276 268.8176,-273.7501 273.8177,-276 273.8177,-276"></polygon>
</g>
<!-- 余弦衰减 -->
<g id="node9" class="node">
<title>余弦衰减</title>
<text text-anchor="middle" x="332.8088" y="-228.2" font-family="EBG,fzlz" font-size="16.00" fill="#b58900">余弦衰减</text>
</g>
<!-- 步长衰减&#45;&gt;余弦衰减 -->
<g id="edge8" class="edge">
<title>步长衰减-&gt;余弦衰减</title>
<path fill="none" stroke="#586e75" d="M221.1812,-263.9077C238.8123,-259.0259 259.3546,-253.3382 277.9756,-248.1823"></path>
<polygon fill="#586e75" stroke="#586e75" points="283.1727,-246.7433 278.9544,-250.246 280.7633,-247.4105 278.354,-248.0776 278.354,-248.0776 278.354,-248.0776 280.7633,-247.4105 277.7536,-245.9092 283.1727,-246.7433 283.1727,-246.7433"></polygon>
</g>
<!-- 循环步长 -->
<g id="node10" class="node">
<title>循环步长</title>
<text text-anchor="middle" x="332.8088" y="-185.2" font-family="EBG,fzlz" font-size="16.00" fill="#b58900">循环步长</text>
</g>
<!-- 周期性步长&#45;&gt;循环步长 -->
<g id="edge9" class="edge">
<title>周期性步长-&gt;循环步长</title>
<path fill="none" stroke="#586e75" d="M227.501,-175.7601C245.4942,-178.1932 265.7665,-180.9344 283.6849,-183.3574"></path>
<polygon fill="#586e75" stroke="#586e75" points="288.6726,-184.0318 283.4162,-185.5915 286.1952,-183.6968 283.7177,-183.3617 283.7177,-183.3617 283.7177,-183.3617 286.1952,-183.6968 284.0192,-181.132 288.6726,-184.0318 288.6726,-184.0318"></polygon>
</g>
<!-- 带热重启的SGD -->
<g id="node11" class="node">
<title>带热重启的SGD</title>
<text text-anchor="middle" x="332.8088" y="-142.2" font-family="EBG,fzlz" font-size="16.00" fill="#b58900">带热重启的SGD</text>
</g>
<!-- 周期性步长&#45;&gt;带热重启的SGD -->
<g id="edge10" class="edge">
<title>周期性步长-&gt;带热重启的SGD</title>
<path fill="none" stroke="#586e75" d="M227.501,-161.918C239.0614,-160.2803 251.5626,-158.5094 263.7759,-156.7792"></path>
<polygon fill="#586e75" stroke="#586e75" points="268.989,-156.0408 264.354,-158.9699 266.5137,-156.3914 264.0384,-156.7421 264.0384,-156.7421 264.0384,-156.7421 266.5137,-156.3914 263.7228,-154.5144 268.989,-156.0408 268.989,-156.0408"></polygon>
</g>
<!-- AdaGrad -->
<g id="node12" class="node">
<title>AdaGrad</title>
<text text-anchor="middle" x="332.8088" y="-99.2" font-family="EBG,fzlz" font-size="16.00" fill="#b58900">AdaGrad</text>
</g>
<!-- 自适应步长&#45;&gt;AdaGrad -->
<g id="edge11" class="edge">
<title>自适应步长-&gt;AdaGrad</title>
<path fill="none" stroke="#586e75" d="M233.1365,-90.5222C251.9089,-93.0606 272.5532,-95.8521 290.1609,-98.2331"></path>
<polygon fill="#586e75" stroke="#586e75" points="295.5224,-98.9581 290.266,-100.5177 293.045,-98.623 290.5675,-98.288 290.5675,-98.288 290.5675,-98.288 293.045,-98.623 290.8691,-96.0583 295.5224,-98.9581 295.5224,-98.9581"></polygon>
</g>
<!-- RMSprop -->
<g id="node13" class="node">
<title>RMSprop</title>
<text text-anchor="middle" x="332.8088" y="-56.2" font-family="EBG,fzlz" font-size="16.00" fill="#b58900">RMSprop</text>
</g>
<!-- 自适应步长&#45;&gt;RMSprop -->
<g id="edge12" class="edge">
<title>自适应步长-&gt;RMSprop</title>
<path fill="none" stroke="#586e75" d="M233.1365,-75.1196C251.1201,-72.5721 270.8217,-69.7811 287.9257,-67.3582"></path>
<polygon fill="#586e75" stroke="#586e75" points="293.1457,-66.6187 288.5107,-69.5478 290.6704,-66.9694 288.1951,-67.3201 288.1951,-67.3201 288.1951,-67.3201 290.6704,-66.9694 287.8795,-65.0923 293.1457,-66.6187 293.1457,-66.6187"></polygon>
</g>
<!-- AdaDelta -->
<g id="node14" class="node">
<title>AdaDelta</title>
<text text-anchor="middle" x="332.8088" y="-13.2" font-family="EBG,fzlz" font-size="16.00" fill="#b58900">AdaDelta</text>
</g>
<!-- 自适应步长&#45;&gt;AdaDelta -->
<g id="edge13" class="edge">
<title>自适应步长-&gt;AdaDelta</title>
<path fill="none" stroke="#586e75" d="M213.7309,-64.9521C230.4538,-56.8985 250.6813,-47.5461 269.2624,-40 275.5547,-37.4446 282.2687,-34.9145 288.8876,-32.5303"></path>
<polygon fill="#586e75" stroke="#586e75" points="293.9222,-30.7374 289.9667,-34.5345 291.567,-31.5762 289.2119,-32.4149 289.2119,-32.4149 289.2119,-32.4149 291.567,-31.5762 288.4571,-30.2953 293.9222,-30.7374 293.9222,-30.7374"></polygon>
</g>
</g>
</svg>
</p><div class="footer"><hr class="hr_bottom"><div class="multi_column"><h6 class="bottom_left">图神经网络导论</h6><h6 class="bottom_center">神经网络</h6><h6 class="bottom_right">tengzhang@hust.edu.cn</h6></div></div>
</section></section><section><section data-notes="" lineno="822" class="slide " data-line="822" data-h="10" data-v="0">
<div class="header"><img class="hust" src=""><div class="title"><hr class="hr_top"><h5>步长衰减</h5></div></div>
<p>基本想法：在一开始要使用大步长来保证收敛速度，在接近最优解时要用小步长避免来回震荡，也称为步长退火</p>
<br>
<p>设初始步长为<span class="mathjax-exps">$\eta_0$</span>，第<span class="mathjax-exps">$t$</span>次迭代时的步长为<span class="mathjax-exps">$\eta_t$</span>，常见的衰减方式为根据迭代次数进行衰减</p>
<ul>
<li>分段常数衰减：每经过<span class="mathjax-exps">$T_1, T_2, \ldots, T_n$</span>次迭代步长衰减为原来的<span class="mathjax-exps">$\beta_1, \beta_2, \ldots, \beta_n$</span>倍，其中<span class="mathjax-exps">$T_n$</span>和<span class="mathjax-exps">$\beta_n &lt; 1$</span>为超参数</li>
<li>逆时衰减：<span class="mathjax-exps">$\eta_t = \eta_0 / (1 + \beta * t)$</span>，其中<span class="mathjax-exps">$\beta$</span>为衰减率</li>
<li>指数衰减：<span class="mathjax-exps">$\eta_t = \eta_0 \beta^t$</span>，其中<span class="mathjax-exps">$\beta &lt; 1$</span>为衰减率</li>
<li>自然指数衰减：<span class="mathjax-exps">$\eta_t = \eta_0 \exp(-\beta * t)$</span></li>
<li>余弦衰减：<span class="mathjax-exps">$\eta_t = \eta_0 (1 + \cos (t \pi /T) )$</span>，其中<span class="mathjax-exps">$T$</span>为总的迭代次数</li>
</ul>
<div class="footer"><hr class="hr_bottom"><div class="multi_column"><h6 class="bottom_left">图神经网络导论</h6><h6 class="bottom_center">神经网络</h6><h6 class="bottom_right">tengzhang@hust.edu.cn</h6></div></div>
</section><section vertical="true" data-notes="" lineno="840" class="slide " data-line="840" data-h="10" data-v="1">
<div class="header"><img class="hust" src=""><div class="title"><hr class="hr_top"><h5>步长预热</h5></div></div>
<p>在训练初始阶段，由于参数是随机初始化的，梯度往往也比较大，如果初始步长也很大，会使得训练不稳定</p>
<br>
<p>步长预热：</p>
<ul>
<li>在最初几轮迭代时，采用较小的步长</li>
<li>等梯度下降到一定程度后再恢复为初始步长</li>
</ul>
<br>
<p>假设预热迭代次数为<span class="mathjax-exps">$T'$</span>，初始步长为<span class="mathjax-exps">$\eta_0$</span>，则</p>
<p>

$$
\begin{align*}
    \eta'_t = \frac{t}{T'} \eta_0, \quad t \in [T']
\end{align*}
$$
</p>

<p>当预热过程结束，再选择一种步长衰减方法来逐渐降低步长</p>
<div class="footer"><hr class="hr_bottom"><div class="multi_column"><h6 class="bottom_left">图神经网络导论</h6><h6 class="bottom_center">神经网络</h6><h6 class="bottom_right">tengzhang@hust.edu.cn</h6></div></div>
</section><section vertical="true" data-notes="" lineno="871" class="slide " data-line="871" data-h="10" data-v="2">
<div class="header"><img class="hust" src=""><div class="title"><hr class="hr_top"><h5>周期性步长</h5></div></div>
<p>在训练过程中周期性地增大步长</p>
<br>
<p>目的：在训练过程中有助于逃离<span class="blue">尖锐的局部最小值点</span>和<span class="blue">鞍点</span></p>
<ul>
<li>平坦的局部最小值点：鲁棒性好，微小的参数变动不会对模型有剧烈影响</li>
<li>尖锐的局部最小值点：鲁棒性差，微小的参数变动也会导致模型剧烈变化</li>
</ul>
<br>
<p>周期性地增大步长虽然会短期内会损害优化过程，但通常最终会收敛到更加理想的局部极小值点，类似于模拟退火</p>
<ul>
<li><span class="blue">循环步长</span>：每个循环周期的长度都为<span class="mathjax-exps">$2 \Delta T$</span>，前<span class="mathjax-exps">$\Delta T$</span>轮步长线性增大，后<span class="mathjax-exps">$\Delta T$</span>轮步长线性缩小，第<span class="mathjax-exps">$n$</span>个周期中步长的上界和下界随着<span class="mathjax-exps">$m$</span>的增大而逐渐减小</li>
<li><span class="blue">带热重启的 SGD</span>：步长每隔一定周期后重新初始化为某个预先设定的值，然后逐渐衰减；每次重启后模型参数不是从头开始优化，而是在重启前的参数基础上继续优化</li>
</ul>
<div class="footer"><hr class="hr_bottom"><div class="multi_column"><h6 class="bottom_left">图神经网络导论</h6><h6 class="bottom_center">神经网络</h6><h6 class="bottom_right">tengzhang@hust.edu.cn</h6></div></div>
</section></section><section><section data-notes="" lineno="893" class="slide " data-line="893" data-h="11" data-v="0">
<div class="header"><img class="hust" src=""><div class="title"><hr class="hr_top"><h5>自适应步长</h5></div></div>
<p>AdaGrad：第<span class="mathjax-exps">$t$</span>轮迭代先计算每个参数<span class="blue">梯度平方的累积值</span>：</p>
<p>

$$
\begin{align*}
    \Gv_t = \sum_{\tau \in [t]} \gv_\tau \odot \gv_\tau
\end{align*}
$$
</p>

<p>其中<span class="mathjax-exps">$\odot$</span>为按元素乘积，<span class="mathjax-exps">$\gv_\tau \in \Rbb^{|\Wv|}$</span>是第<span class="mathjax-exps">$\tau$</span>次迭代时的梯度</p>
<br>
<p>再利用累积梯度平方做衰减 (每个元素各自计算)</p>
<p>

$$
\begin{align*}
    \Wv_{t+1} \leftarrow \Wv_t - \frac{\alpha}{\sqrt{\Gv_t + \epsilon}} \odot \gv_\tau
\end{align*}
$$
</p>

<p>其中<span class="mathjax-exps">$\alpha$</span>是初始步长，<span class="mathjax-exps">$\epsilon$</span>是为了保持数值稳定而设置的非常小的常数</p>
<br>
<p>缺点：经过一定轮数的迭代仍未找到最优点时，由于此时步长已经非常小，很难再继续找到最优点</p>
<div class="footer"><hr class="hr_bottom"><div class="multi_column"><h6 class="bottom_left">图神经网络导论</h6><h6 class="bottom_center">神经网络</h6><h6 class="bottom_right">tengzhang@hust.edu.cn</h6></div></div>
</section><section vertical="true" data-notes="" lineno="933" class="slide " data-line="933" data-h="11" data-v="1">
<div class="header"><img class="hust" src=""><div class="title"><hr class="hr_top"><h5>自适应步长</h5></div></div>
<p>RMSprop：第<span class="mathjax-exps">$t$</span>轮迭代先计算<span class="blue">梯度平方的指数衰减移动平均</span>：</p>
<p>

$$
\begin{align*}
    \Gv_t = \beta \Gv_{t-1} + (1 - \beta) \gv_\tau \odot \gv_\tau = (1 - \beta) \sum_{\tau \in [t]} \beta^{t - \tau} \gv_\tau \odot \gv_\tau
\end{align*}
$$
</p>

<p>其中<span class="mathjax-exps">$\beta &lt; 1$</span>为衰减率，一般取值<span class="mathjax-exps">$0.9$</span></p>
<br>
<p>RMSprop 的更新公式为</p>
<p>

$$
\begin{align*}
    \Wv_{t+1} \leftarrow \Wv_t - \frac{\alpha}{\sqrt{\Gv_t + \epsilon}} \odot \gv_\tau
\end{align*}
$$
</p>

<p>其中<span class="mathjax-exps">$\alpha$</span>通常设为<span class="mathjax-exps">$0.001$</span></p>
<br>
<p>较 AdaGrad 的优点：<span class="mathjax-exps">$\Gv_t$</span>并非单调增加，故步长不是单调衰减，既可以变小也可以变大</p>
<div class="footer"><hr class="hr_bottom"><div class="multi_column"><h6 class="bottom_left">图神经网络导论</h6><h6 class="bottom_center">神经网络</h6><h6 class="bottom_right">tengzhang@hust.edu.cn</h6></div></div>
</section><section vertical="true" data-notes="" lineno="973" class="slide " data-line="973" data-h="11" data-v="2">
<div class="header"><img class="hust" src=""><div class="title"><hr class="hr_top"><h5>自适应步长</h5></div></div>
<p>AdaDelta：进一步引入<span class="blue">参数更新差平方的指数衰减移动平均</span>：</p>
<p>

$$
\begin{align*}
    \Delta \Uv_{t-1}^2 = \beta \Delta \Uv_{t-2}^2 + (1 - \beta) \Delta \Wv_{t-1} \odot \Delta \Wv_{t-1}
\end{align*}
$$
</p>

<p>其中<span class="mathjax-exps">$\beta$</span>为衰减率，<span class="mathjax-exps">$\Delta \Wv_{t-1} = \Wv_t - \Wv_{t-1}$</span>为参数更新差</p>
<div class="bottom4"></div>
<p>AdaDelta 的更新公式为</p>
<p>

$$
\begin{align*}
    \Wv_{t+1} \leftarrow \Wv_t - \frac{\sqrt{\Delta \Uv_{t-1}^2 + \epsilon}}{\sqrt{\Gv_t + \epsilon}} \odot \gv_\tau
\end{align*}
$$
</p>

<p>优点：将 RMSprop 中的初始步长<span class="mathjax-exps">$\alpha$</span>改为动态计算的<span class="mathjax-exps">$\Delta \Uv_{t-1}$</span>，在一定程度上抑制了步长的波动</p>
<div class="footer"><hr class="hr_bottom"><div class="multi_column"><h6 class="bottom_left">图神经网络导论</h6><h6 class="bottom_center">神经网络</h6><h6 class="bottom_right">tengzhang@hust.edu.cn</h6></div></div>
</section></section><section><section data-notes="" lineno="1009" class="slide " data-line="1009" data-h="12" data-v="0">
<div class="header"><img class="hust" src=""><div class="title"><hr class="hr_top"><h5>更新方向调整</h5></div></div>
<p>动量法：计算负梯度的“加权移动平均”作为参数的更新方向</p>
<p>

$$
\begin{align*}
    \Wv_{t+1} - \Wv_t = \Delta \Wv_t = \rho \Delta \Wv_{t-1} - \alpha \gv_t = - \alpha \sum_{\tau \in [t]} \rho^{t - \tau} \gv_\tau
\end{align*}
$$
</p>

<p>Nesterov 加速梯度：改进动量法的第二步</p>
<p>

$$
\begin{align*}
    \begin{cases} \widetilde{\Wv} = \Wv_t + \rho \Delta \Wv_{t-1} \\ \Wv_{t+1} = \widetilde{\Wv} - \alpha ~ \class{yellow}{\gv_t (\Wv_t)} \end{cases}
    ~ \Longrightarrow ~
    \begin{cases} \widetilde{\Wv} = \Wv_t + \rho \Delta \Wv_{t-1} \\ \Wv_{t+1} = \widetilde{\Wv} - \alpha ~ \class{yellow}{\gv_t (\widetilde{\Wv})} \end{cases}
\end{align*}
$$
</p>

<div class="footer"><hr class="hr_bottom"><div class="multi_column"><h6 class="bottom_left">图神经网络导论</h6><h6 class="bottom_center">神经网络</h6><h6 class="bottom_right">tengzhang@hust.edu.cn</h6></div></div>
</section><section vertical="true" data-notes="" lineno="1041" class="slide " data-line="1041" data-h="12" data-v="1">
<div class="header"><img class="hust" src=""><div class="title"><hr class="hr_top"><h5>更新方向调整</h5></div></div>
<p>Adam (<strong>ada</strong>ptive <strong>m</strong>oment estimation)：动量法和 RMSprop 的结合</p>
<p>

$$
\begin{align*}
    \Mv_t &amp; = \beta_1 \Mv_{t-1} + (1 - \beta_1) \gv_t = (1 - \beta_1) \sum_{\tau \in [t]} \beta_1^{t - \tau} \gv_\tau \\
    \Gv_t &amp; = \beta_2 \Gv_{t-1} + (1 - \beta_2) \gv_t \odot \gv_t = (1 - \beta_2) \sum_{\tau \in [t]} \beta_2^{t - \tau} \gv_\tau \odot \gv_\tau
\end{align*}
$$
</p>

<p>其中<span class="mathjax-exps">$\beta_1$</span>、<span class="mathjax-exps">$\beta_2$</span>为衰减率，一般取值<span class="mathjax-exps">$\beta_1 = 0.9$</span>、<span class="mathjax-exps">$\beta_2 = 0.99$</span></p>
<br>
<p>

$$
\begin{align*}
    \Ebb [\Mv_t] &amp; = (1 - \beta_1) \sum_{\tau \in [t]} \beta_1^{t - \tau} \Ebb [\gv_\tau] = (1 - \beta_1^t) \Ebb [\gv_\tau] \\
    \Ebb [\Gv_t] &amp; = (1 - \beta_2) \sum_{\tau \in [t]} \beta_2^{t - \tau} \Ebb [\gv_\tau \odot \gv_\tau] = (1 - \beta_2^t) \Ebb [\gv_\tau \odot \gv_\tau]
\end{align*}
$$
</p>

<p>因此<span class="mathjax-exps">$\widetilde{\Mv}_t = \Mv_t / (1 - \beta_1^t)$</span>可以看作一阶矩，<span class="mathjax-exps">$\widetilde{\Gv}_t = \Gv_t / (1 - \beta_2^t)$</span>为二阶矩</p>
<div class="footer"><hr class="hr_bottom"><div class="multi_column"><h6 class="bottom_left">图神经网络导论</h6><h6 class="bottom_center">神经网络</h6><h6 class="bottom_right">tengzhang@hust.edu.cn</h6></div></div>
</section><section vertical="true" data-notes="" lineno="1077" class="slide " data-line="1077" data-h="12" data-v="2">
<div class="header"><img class="hust" src=""><div class="title"><hr class="hr_top"><h5>更新方向调整</h5></div></div>
<p>Adam 的更新公式为</p>
<p>

$$
\begin{align*}
    \Wv_{t+1} \leftarrow \Wv_t - \frac{\alpha}{\sqrt{\widetilde{\Gv}_t + \epsilon}} \odot \widetilde{\Mv}_t
\end{align*}
$$
</p>

<p>其中<span class="mathjax-exps">$\alpha$</span>通常设为<span class="mathjax-exps">$0.001$</span>，也可以进行衰减，例如<span class="mathjax-exps">$\alpha_t = \alpha / \sqrt{t}$</span></p>
<br>
<p>如果将 NAG 和 RMSprop 的结合，则得到 Nadam</p>
<br>
<p>对于深层网络，在基于梯度下降的训练过程中，除了梯度消失，也会出现梯度爆炸，此时可进行梯度截断</p>
<ul>
<li>按值截断：<span class="mathjax-exps">$\gv_t = \max \{ \min \{ \gv_t, b \}, a \}$</span></li>
<li>按范数截断：<span class="mathjax-exps">$\gv_t = b ~ \gv_t / \| \gv_t \|$</span></li>
</ul>
<div class="footer"><hr class="hr_bottom"><div class="multi_column"><h6 class="bottom_left">图神经网络导论</h6><h6 class="bottom_center">神经网络</h6><h6 class="bottom_right">tengzhang@hust.edu.cn</h6></div></div>
</section></section><section><section data-notes="" lineno="1108" class="slide " data-line="1108" data-h="13" data-v="0">
<div class="header"><img class="hust" src=""><div class="title"><hr class="hr_top"><h5>训练技巧</h5></div></div>
<p>训练神经网络有很多奇技淫巧</p>
<ul>
<li>参数初始化</li>
<li>逐层归一化</li>
<li>超参数选择</li>
<li>权重衰减</li>
<li>提前停止</li>
<li>随机丢弃</li>
<li>数据增强</li>
<li>Mixup</li>
</ul>
<div class="footer"><hr class="hr_bottom"><div class="multi_column"><h6 class="bottom_left">图神经网络导论</h6><h6 class="bottom_center">神经网络</h6><h6 class="bottom_right">tengzhang@hust.edu.cn</h6></div></div>
</section><section vertical="true" data-notes="" lineno="1125" class="slide " data-line="1125" data-h="13" data-v="1">
<div class="header"><img class="hust" src=""><div class="title"><hr class="hr_top"><h5>参数初始化</h5></div></div>
<p>感知机、支持向量机、对数几率回归的<span class="mathjax-exps">$\wv$</span>通常初始化为零</p>
<br>
<p>神经网络的<span class="mathjax-exps">$\Wv$</span>如果全部初始化为零，在第一遍前向计算时，所有的隐层神经元的激活值都相同，这样会导致深层神经元没有区分性</p>
<br>
<p>方案：随机初始化</p>
<br>
<p>策略：<span class="blue">保持每个神经元输入和输出的方差一致</span></p>
<br>
<p>第<span class="mathjax-exps">$l$</span>个隐层的神经元<span class="mathjax-exps">$z$</span>接受前一层的输出<span class="mathjax-exps">$a_1, \ldots, a_{n_{l-1}}$</span>作为输入</p>
<p>

$$
\begin{align*}
    z = \sum_{i \in [n_{l-1}]} w_i a_i
\end{align*}
$$
</p>

<div class="footer"><hr class="hr_bottom"><div class="multi_column"><h6 class="bottom_left">图神经网络导论</h6><h6 class="bottom_center">神经网络</h6><h6 class="bottom_right">tengzhang@hust.edu.cn</h6></div></div>
</section><section vertical="true" data-notes="" lineno="1159" class="slide " data-line="1159" data-h="13" data-v="2">
<div class="header"><img class="hust" src=""><div class="title"><hr class="hr_top"><h5>参数初始化</h5></div></div>
<p>假设<span class="mathjax-exps">$w_i$</span>和<span class="mathjax-exps">$a_i$</span>的均值都为<span class="mathjax-exps">$0$</span>，并且互相独立，则<span class="mathjax-exps">$z$</span>的方差为</p>
<p>

$$
\begin{align*}
    \var[z] = \sum_{i \in [n_{l-1}]} \var[w_i] \var[a_i] = n_{l-1} \var[w_i] \var[a_i]
\end{align*}
$$
</p>

<br>
<p>若想保持每个神经元的输入和输出的方差一致，则有<span class="mathjax-exps">$\var[w_i] = 1 / n_{l-1}$</span></p>
<br>
<p>同理在反向传播中，若想误差信号也不被放大或缩小，需将<span class="mathjax-exps">$w_i$</span>的方差保持为<span class="mathjax-exps">$\var[w_i] = 1 / n_l$</span></p>
<br>
<p>两相折中，可以设置<span class="mathjax-exps">$\var[w_i] = 2 / (n_l + n_{l-1})$</span></p>
<ul>
<li><span class="blue">正态分布初始化</span>，<span class="mathjax-exps">$\Ncal (0, \sqrt{2 / (n_l + n_{l-1})})$</span></li>
<li><span class="blue">均匀分布初始化</span>，若分布区间为<span class="mathjax-exps">$[-r,r]$</span>，则<span class="mathjax-exps">$r = \sqrt{6 / (n_l + n_{l-1})}$</span></li>
</ul>
<div class="footer"><hr class="hr_bottom"><div class="multi_column"><h6 class="bottom_left">图神经网络导论</h6><h6 class="bottom_center">神经网络</h6><h6 class="bottom_right">tengzhang@hust.edu.cn</h6></div></div>
</section></section><section><section data-notes="" lineno="1192" class="slide " data-line="1192" data-h="14" data-v="0">
<div class="header"><img class="hust" src=""><div class="title"><hr class="hr_top"><h5>逐层归一化</h5></div></div>
<p>在使用随机梯度下降来训练网络时</p>
<ul>
<li>每次参数更新都会导致网络中间每一层的输入的分布发生改变</li>
<li>越深的层的输入分布会改变得越明显</li>
</ul>
<p>如果某个神经层的输入分布发生了改变，那么其参数需要重新学习</p>
<p><span class="blue">批量归一化</span> (<strong>b</strong>atch <strong>n</strong>ormalization, BN)：逐层将各个神经元<span class="mathjax-exps">$z$</span>归一化到标准正态分布</p>
<p>

$$
\begin{align*}
    \hat{z} = \frac{z - \Ebb[z]}{\sqrt{\var [z] + \epsilon}}
\end{align*}
$$
</p>

<p><span class="mathjax-exps">$z$</span>的期望和方差通常用当前小批量样本集的均值和方差近似估计</p>
<p>批量归一化操作可以看作一个特殊的层，加在每一层非线性激活函数前：<span class="mathjax-exps">$\av_{l+1} = h(\mathrm{BN} (\Wv \av_l))$</span></p>
<div class="footer"><hr class="hr_bottom"><div class="multi_column"><h6 class="bottom_left">图神经网络导论</h6><h6 class="bottom_center">神经网络</h6><h6 class="bottom_right">tengzhang@hust.edu.cn</h6></div></div>
</section><section vertical="true" data-notes="" lineno="1221" class="slide " data-line="1221" data-h="14" data-v="1">
<div class="header"><img class="hust" src=""><div class="title"><hr class="hr_top"><h5>逐层归一化</h5></div></div>
<p>批量归一化：针对单个神经元</p>
<ul>
<li>要求小批量样本数不能太小，否则难以得到单个神经元较准确的统计信息</li>
</ul>
<p>层归一化：针对一层的所有神经元</p>
<br>
<p>设小批量样本数为<span class="mathjax-exps">$k$</span>，该层神经元数为<span class="mathjax-exps">$n$</span></p>
<p>

$$
\begin{align*}
    \begin{bmatrix}
        z_{11} &amp; z_{12} &amp; \cdots &amp; z_{1n} \\
        z_{21} &amp; z_{22} &amp; \cdots &amp; z_{2n} \\
        \vdots &amp; \vdots &amp; \ddots &amp; \vdots \\
        z_{k1} &amp; z_{k2} &amp; \cdots &amp; z_{kn} \\
    \end{bmatrix}
\end{align*}
$$
</p>

<br>
<ul>
<li>批量归一化：对列做归一化</li>
<li>层归一化：对行做归一化，用于小批量样本数较小的时候</li>
</ul>
<div class="footer"><hr class="hr_bottom"><div class="multi_column"><h6 class="bottom_left">图神经网络导论</h6><h6 class="bottom_center">神经网络</h6><h6 class="bottom_right">tengzhang@hust.edu.cn</h6></div></div>
</section></section><section><section data-notes="" lineno="1257" class="slide " data-line="1257" data-h="15" data-v="0">
<div class="header"><img class="hust" src=""><div class="title"><hr class="hr_top"><h5>超参数选择</h5></div></div>
<p>超参数对神经网络的性能影响很大，常见的超参数有</p>
<ul>
<li>网络结构：神经元之间的连接关系、层数、每层的神经元数量、激活函数类型</li>
<li>优化参数：优化方法、步长、小批量样本数</li>
<li>正则化系数</li>
</ul>
<br>
<p>超参数优化很难</p>
<ul>
<li>组合优化问题，无法像一般参数那样通过梯度下降方法来优化，也没有一种通用有效的优化方法</li>
<li>评估一组超参数配置的时间代价非常高，从而导致一些黑盒优化方法，如演化算法难以应用</li>
</ul>
<div class="footer"><hr class="hr_bottom"><div class="multi_column"><h6 class="bottom_left">图神经网络导论</h6><h6 class="bottom_center">神经网络</h6><h6 class="bottom_right">tengzhang@hust.edu.cn</h6></div></div>
</section><section vertical="true" data-notes="" lineno="1276" class="slide " data-line="1276" data-h="15" data-v="1">
<div class="header"><img class="hust" src=""><div class="title"><hr class="hr_top"><h5>网格搜索</h5></div></div>
<p>尝试所有的超参数组合来寻找一组合适的超参数配置</p>
<br>
<p>设共有<span class="mathjax-exps">$K$</span>个超参数，第<span class="mathjax-exps">$k$</span>个超参数可以取<span class="mathjax-exps">$n_k$</span>个值，那么组合总数为</p>
<p>

$$
\begin{align*}
    n_1 \times n_2 \times \cdots \times n_K
\end{align*}
$$
</p>

<br>
<p>如果超参数是连续的，可以将超参数离散化，选择几个“经验”值，比如正则化系数<span class="mathjax-exps">$\lambda$</span>，可以设置</p>
<p>

$$
\begin{align*}
    \lambda \in \{ 0.01, 0.1, 1, 10, 100 \}
\end{align*}
$$
</p>

<br>
<p>对于连续的超参数，不能简单地按等间隔的方式离散化，需要根据超参数自身的特点进行离散化</p>
<div class="footer"><hr class="hr_bottom"><div class="multi_column"><h6 class="bottom_left">图神经网络导论</h6><h6 class="bottom_center">神经网络</h6><h6 class="bottom_right">tengzhang@hust.edu.cn</h6></div></div>
</section><section vertical="true" data-notes="" lineno="1316" class="slide " data-line="1316" data-h="15" data-v="2">
<div class="header"><img class="hust" src=""><div class="title"><hr class="hr_top"><h5>随机搜索</h5></div></div>
<p>不同超参数对模型性能的影响有很大差异</p>
<br>
<p>有些超参数对模型性能的影响有限，例如正则化系数；而有些超参数对模型性能影响比较大，例如步长</p>
<br>
<p><span class="blue">采用网格搜索会在不重要的超参数上进行不必要的尝试</span></p>
<br>
<p>随机搜索：对超参数进行随机组合，然后选取一个性能最好的配置</p>
<br>
<p>优点：在实践中更容易实现，一般会比网格搜索更加有效</p>
<br>
<p>缺点：与网格搜索一样，没有利用不同超参数组合之间的相关性，即如果超参数组合比较类似，模型性能也会比较接近，因此这两种搜索方式一般都比较低效</p>
<div class="footer"><hr class="hr_bottom"><div class="multi_column"><h6 class="bottom_left">图神经网络导论</h6><h6 class="bottom_center">神经网络</h6><h6 class="bottom_right">tengzhang@hust.edu.cn</h6></div></div>
</section><section vertical="true" data-notes="" lineno="1344" class="slide " data-line="1344" data-h="15" data-v="3">
<div class="header"><img class="hust" src=""><div class="title"><hr class="hr_top"><h5>贝叶斯优化</h5></div></div>
<p>根据已试验的超参数组合，猜测可能带来更大收益的组合</p>
<ul>
<li>如何根据已有超参数组合对应的模型性能，得到未知组合的模型性能</li>
<li>如何确定收益</li>
</ul>
<br>
<p>第一个问题通常采用<span class="blue">高斯过程回归</span>，此时<span class="mathjax-exps">$p(\mathtip{g}{泛化风险}|\mathtip{h}{超参数})$</span>为一个正态分布</p>
<p>

$$
\begin{align*}
    \Scal = \{ g_i, h_i \}_{i \in [m]} ~ \Longrightarrow ~ p(\hat{g} | \hat{h}, \Scal)
\end{align*}
$$
</p>

<br>
<p>第二个问题需引入一个收益函数，常见的是期望改善</p>
<p>

$$
\begin{align*}
    \int \max \{ g^\star - g, 0 \} p(g | h, \Scal) \diff g
\end{align*}
$$
</p>

<p>其中<span class="mathjax-exps">$g^\star = \min \{ g_i, i \in [m] \}$</span>是当前已有超参数组合中的最优泛化风险</p>
<div class="footer"><hr class="hr_bottom"><div class="multi_column"><h6 class="bottom_left">图神经网络导论</h6><h6 class="bottom_center">神经网络</h6><h6 class="bottom_right">tengzhang@hust.edu.cn</h6></div></div>
</section><section vertical="true" data-notes="" lineno="1385" class="slide " data-line="1385" data-h="15" data-v="4">
<div class="header"><img class="hust" src=""><div class="title"><hr class="hr_top"><h5>动态资源分配</h5></div></div>
<p>在超参数优化中，如果可以在早期就估计出一个超参数组合的效果会比较差，那么可以提早停止对它的评估，将更多的计算资源留给其它更有潜力的超参数组合</p>
<br>
<p>逐次减半法：</p>
<ul>
<li>将所有计算资源平均分给所有的超参数组合</li>
<li>同时训练每个超参数组合对应的网络一段时间</li>
<li>保留前一半好的组合，转第 1 步</li>
</ul>
<br>
<p>利用 - 探索两难问题：</p>
<ul>
<li>如果超参数组合数越多，得到最佳组合的可能性也越大，但每个组合分到的计算资源就越少，早期的评估结果可能不准</li>
<li>如果超参数组合数越少，每个超参数组合的评估会越准确，但有可能无法得到最优组合</li>
</ul>
<div class="footer"><hr class="hr_bottom"><div class="multi_column"><h6 class="bottom_left">图神经网络导论</h6><h6 class="bottom_center">神经网络</h6><h6 class="bottom_right">tengzhang@hust.edu.cn</h6></div></div>
</section><section vertical="true" data-notes="" lineno="1408" class="slide " data-line="1408" data-h="15" data-v="5">
<div class="header"><img class="hust" src=""><div class="title"><hr class="hr_top"><h5>神经架构搜索</h5></div></div>
<p>深度学习：“特征工程”问题 → “网络架构工程”问题</p>
<br>
<p>神经架构搜索 (<strong>n</strong>eural <strong>a</strong>rchitecture <strong>s</strong>earch, NAS)：用神经网络来自动实现网络架构的设计，目前最热 (内) 门 (卷) 的研究方向</p>
<ul>
<li>神经网络的架构可以用一个变长的字符串来描述</li>
<li>用另一个循环神经网络来不断生成新的架构描述</li>
<li>循环神经网络的训练采用强化学习来完成，奖励信号可以为生成的网络在验证集上的性能</li>
</ul>
<div class="footer"><hr class="hr_bottom"><div class="multi_column"><h6 class="bottom_left">图神经网络导论</h6><h6 class="bottom_center">神经网络</h6><h6 class="bottom_right">tengzhang@hust.edu.cn</h6></div></div>
</section></section><section><section data-notes="" lineno="1424" class="slide " data-line="1424" data-h="16" data-v="0">
<div class="header"><img class="hust" src=""><div class="title"><hr class="hr_top"><h5>网络正则化</h5></div></div>
<p>权重衰减：每次更新时引入一个衰减系数</p>
<p>

$$
\begin{align*}
    \Wv_{t+1} &amp; \leftarrow (1 - \beta) \Wv_t - \eta \gv_t = \Wv_t - \eta \left( \gv_t + \frac{\beta}{\eta} \Wv_t \right)
\end{align*}
$$
</p>

<ul>
<li>在标准的随机梯度下降中，权重衰减等价于<span class="mathjax-exps">$\ell_2$</span>正则</li>
<li>在较为复杂的优化方法，例如 Adam 中，两者并不等价</li>
</ul>
<br>
<p>提前停止：</p>
<ul>
<li>引入一个和训练集独立的样本集合，称为验证集 (validation set)，验证集上的错误可视为期望错误</li>
<li>当验证集上的错误率不再下降，就停止训练</li>
</ul>
<div class="footer"><hr class="hr_bottom"><div class="multi_column"><h6 class="bottom_left">图神经网络导论</h6><h6 class="bottom_center">神经网络</h6><h6 class="bottom_right">tengzhang@hust.edu.cn</h6></div></div>
</section><section vertical="true" data-notes="" lineno="1452" class="slide " data-line="1452" data-h="16" data-v="1">
<div class="header"><img class="hust" src=""><div class="title"><hr class="hr_top"><h5>随机丢弃</h5></div></div>
<p>对每一个神经元都以固定的概率<span class="mathjax-exps">$p$</span>判定是否要保留</p>
<p><!--?xml version="1.0" encoding="UTF-8" standalone="no"?-->

<!-- Generated by graphviz version 2.40.1 (20161225.0304)
 -->
<!-- Title: g Pages: 1 -->
<svg width="661pt" height="296pt" viewBox="0.00 0.00 661.00 295.80" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 291.8)">
<title>g</title>
<g id="clust1" class="cluster">
<title>cluster_1</title>
<polygon fill="transparent" stroke="#586e75" stroke-dasharray="5,2" points="8,-8 8,-279.8 320,-279.8 320,-8 8,-8"></polygon>
<text text-anchor="middle" x="164" y="-263.2" font-family="EBG,fzlz" font-size="14.00" fill="#268bd2">标准网络</text>
</g>
<g id="clust5" class="cluster">
<title>cluster_2</title>
<polygon fill="transparent" stroke="#586e75" stroke-dasharray="5,2" points="333,-8 333,-279.8 645,-279.8 645,-8 333,-8"></polygon>
<text text-anchor="middle" x="489" y="-263.2" font-family="EBG,fzlz" font-size="14.00" fill="#268bd2">随机丢弃后的网络</text>
</g>
<!-- 11 -->
<g id="node1" class="node">
<title>11</title>
<ellipse fill="none" stroke="#586e75" cx="99" cy="-229" rx="18" ry="18"></ellipse>
</g>
<!-- 21 -->
<g id="node6" class="node">
<title>21</title>
<ellipse fill="none" stroke="#586e75" cx="164" cy="-164" rx="18" ry="18"></ellipse>
</g>
<!-- 11&#45;&gt;21 -->
<g id="edge1" class="edge">
<title>11-&gt;21</title>
<path fill="none" stroke="#586e75" d="M111.8419,-216.1581C122.08,-205.92 136.4869,-191.5131 147.566,-180.434"></path>
<polygon fill="#586e75" stroke="#586e75" points="151.1848,-176.8152 149.2402,-181.9418 149.417,-178.583 147.6492,-180.3508 147.6492,-180.3508 147.6492,-180.3508 149.417,-178.583 146.0582,-178.7598 151.1848,-176.8152 151.1848,-176.8152"></polygon>
</g>
<!-- 22 -->
<g id="node7" class="node">
<title>22</title>
<ellipse fill="none" stroke="#586e75" cx="229" cy="-164" rx="18" ry="18"></ellipse>
</g>
<!-- 11&#45;&gt;22 -->
<g id="edge2" class="edge">
<title>11-&gt;22</title>
<path fill="none" stroke="#586e75" d="M114.9783,-219.9514C120.3404,-217.0044 126.3849,-213.7785 132,-211 160.3525,-196.9705 168.7396,-196.2141 197,-182 200.8473,-180.0649 204.8927,-177.8975 208.7637,-175.7552"></path>
<polygon fill="#586e75" stroke="#586e75" points="213.2055,-173.2672 209.9428,-177.6737 211.0244,-174.489 208.8432,-175.7107 208.8432,-175.7107 208.8432,-175.7107 211.0244,-174.489 207.7436,-173.7477 213.2055,-173.2672 213.2055,-173.2672"></polygon>
</g>
<!-- 23 -->
<g id="node8" class="node">
<title>23</title>
<ellipse fill="none" stroke="#586e75" cx="294" cy="-164" rx="18" ry="18"></ellipse>
</g>
<!-- 11&#45;&gt;23 -->
<g id="edge3" class="edge">
<title>11-&gt;23</title>
<path fill="none" stroke="#586e75" d="M114.353,-219.4645C119.774,-216.4145 126.0132,-213.2495 132,-211 187.4153,-190.1785 206.7216,-203.1824 262,-182 266.107,-180.4262 270.3247,-178.3932 274.2952,-176.2627"></path>
<polygon fill="#586e75" stroke="#586e75" points="278.8211,-173.7388 275.5502,-178.1392 276.6377,-174.9564 274.4543,-176.1741 274.4543,-176.1741 274.4543,-176.1741 276.6377,-174.9564 273.3584,-174.209 278.8211,-173.7388 278.8211,-173.7388"></polygon>
</g>
<!-- 24 -->
<g id="node9" class="node">
<title>24</title>
<ellipse fill="none" stroke="#586e75" cx="34" cy="-164" rx="18" ry="18"></ellipse>
</g>
<!-- 11&#45;&gt;24 -->
<g id="edge4" class="edge">
<title>11-&gt;24</title>
<path fill="none" stroke="#586e75" d="M86.1581,-216.1581C75.92,-205.92 61.5131,-191.5131 50.434,-180.434"></path>
<polygon fill="#586e75" stroke="#586e75" points="46.8152,-176.8152 51.9418,-178.7598 48.583,-178.583 50.3508,-180.3508 50.3508,-180.3508 50.3508,-180.3508 48.583,-178.583 48.7598,-181.9418 46.8152,-176.8152 46.8152,-176.8152"></polygon>
</g>
<!-- 25 -->
<g id="node10" class="node">
<title>25</title>
<ellipse fill="none" stroke="#586e75" cx="99" cy="-164" rx="18" ry="18"></ellipse>
</g>
<!-- 11&#45;&gt;25 -->
<g id="edge5" class="edge">
<title>11-&gt;25</title>
<path fill="none" stroke="#586e75" d="M99,-210.8939C99,-203.5688 99,-195.0213 99,-187.2449"></path>
<polygon fill="#586e75" stroke="#586e75" points="99,-182.009 101.2501,-187.009 99,-184.509 99.0001,-187.009 99.0001,-187.009 99.0001,-187.009 99,-184.509 96.7501,-187.0091 99,-182.009 99,-182.009"></polygon>
</g>
<!-- 12 -->
<g id="node2" class="node">
<title>12</title>
<ellipse fill="none" stroke="#586e75" cx="34" cy="-229" rx="18" ry="18"></ellipse>
</g>
<!-- 12&#45;&gt;21 -->
<g id="edge6" class="edge">
<title>12-&gt;21</title>
<path fill="none" stroke="#586e75" d="M49.7854,-219.7146C54.9013,-216.8151 60.6396,-213.6771 66,-211 94.664,-196.6842 103.336,-196.3158 132,-182 135.8528,-180.0758 139.9008,-177.9135 143.7726,-175.7729"></path>
<polygon fill="#586e75" stroke="#586e75" points="148.2146,-173.2854 144.9514,-177.6916 146.0333,-174.5069 143.8521,-175.7284 143.8521,-175.7284 143.8521,-175.7284 146.0333,-174.5069 142.7527,-173.7653 148.2146,-173.2854 148.2146,-173.2854"></polygon>
</g>
<!-- 12&#45;&gt;22 -->
<g id="edge7" class="edge">
<title>12-&gt;22</title>
<path fill="none" stroke="#586e75" d="M49.1768,-219.2558C54.3552,-216.2624 60.2842,-213.185 66,-211 121.7008,-189.7075 141.2992,-203.2925 197,-182 201.1082,-180.4296 205.3266,-178.398 209.2972,-176.2681"></path>
<polygon fill="#586e75" stroke="#586e75" points="213.8232,-173.7442 210.5521,-178.1445 211.6397,-174.9618 209.4563,-176.1794 209.4563,-176.1794 209.4563,-176.1794 211.6397,-174.9618 208.3604,-174.2143 213.8232,-173.7442 213.8232,-173.7442"></polygon>
</g>
<!-- 12&#45;&gt;23 -->
<g id="edge8" class="edge">
<title>12-&gt;23</title>
<path fill="none" stroke="#586e75" d="M49.0902,-219.0166C54.2628,-216.0073 60.2103,-212.9808 66,-211 149.3182,-182.4948 178.6818,-210.5052 262,-182 266.1614,-180.5763 270.4042,-178.6124 274.3823,-176.503"></path>
<polygon fill="#586e75" stroke="#586e75" points="278.9098,-173.9834 275.6349,-178.3809 276.7253,-175.1991 274.5408,-176.4148 274.5408,-176.4148 274.5408,-176.4148 276.7253,-175.1991 273.4466,-174.4487 278.9098,-173.9834 278.9098,-173.9834"></polygon>
</g>
<!-- 12&#45;&gt;24 -->
<g id="edge9" class="edge">
<title>12-&gt;24</title>
<path fill="none" stroke="#586e75" d="M34,-210.8939C34,-203.5688 34,-195.0213 34,-187.2449"></path>
<polygon fill="#586e75" stroke="#586e75" points="34,-182.009 36.2501,-187.009 34,-184.509 34.0001,-187.009 34.0001,-187.009 34.0001,-187.009 34,-184.509 31.7501,-187.0091 34,-182.009 34,-182.009"></polygon>
</g>
<!-- 12&#45;&gt;25 -->
<g id="edge10" class="edge">
<title>12-&gt;25</title>
<path fill="none" stroke="#586e75" d="M46.8419,-216.1581C57.08,-205.92 71.4869,-191.5131 82.566,-180.434"></path>
<polygon fill="#586e75" stroke="#586e75" points="86.1848,-176.8152 84.2402,-181.9418 84.417,-178.583 82.6492,-180.3508 82.6492,-180.3508 82.6492,-180.3508 84.417,-178.583 81.0582,-178.7598 86.1848,-176.8152 86.1848,-176.8152"></polygon>
</g>
<!-- 13 -->
<g id="node3" class="node">
<title>13</title>
<ellipse fill="none" stroke="#586e75" cx="294" cy="-229" rx="18" ry="18"></ellipse>
</g>
<!-- 13&#45;&gt;21 -->
<g id="edge11" class="edge">
<title>13-&gt;21</title>
<path fill="none" stroke="#586e75" d="M278.2055,-219.7328C273.0891,-216.8343 267.3528,-213.6923 262,-211 233.7396,-196.7859 225.3525,-196.0295 197,-182 192.8764,-179.9595 188.5212,-177.6778 184.3749,-175.4424"></path>
<polygon fill="#586e75" stroke="#586e75" points="179.9783,-173.0486 185.4456,-173.4635 182.174,-174.2441 184.3696,-175.4396 184.3696,-175.4396 184.3696,-175.4396 182.174,-174.2441 183.2937,-177.4157 179.9783,-173.0486 179.9783,-173.0486"></polygon>
</g>
<!-- 13&#45;&gt;22 -->
<g id="edge12" class="edge">
<title>13-&gt;22</title>
<path fill="none" stroke="#586e75" d="M281.1581,-216.1581C270.92,-205.92 256.5131,-191.5131 245.434,-180.434"></path>
<polygon fill="#586e75" stroke="#586e75" points="241.8152,-176.8152 246.9418,-178.7598 243.583,-178.583 245.3508,-180.3508 245.3508,-180.3508 245.3508,-180.3508 243.583,-178.583 243.7598,-181.9418 241.8152,-176.8152 241.8152,-176.8152"></polygon>
</g>
<!-- 13&#45;&gt;23 -->
<g id="edge13" class="edge">
<title>13-&gt;23</title>
<path fill="none" stroke="#586e75" d="M294,-210.8939C294,-203.5688 294,-195.0213 294,-187.2449"></path>
<polygon fill="#586e75" stroke="#586e75" points="294,-182.009 296.2501,-187.009 294,-184.509 294.0001,-187.009 294.0001,-187.009 294.0001,-187.009 294,-184.509 291.7501,-187.0091 294,-182.009 294,-182.009"></polygon>
</g>
<!-- 13&#45;&gt;24 -->
<g id="edge14" class="edge">
<title>13-&gt;24</title>
<path fill="none" stroke="#586e75" d="M278.9098,-219.0166C273.7372,-216.0073 267.7897,-212.9808 262,-211 178.6818,-182.4948 149.3182,-210.5052 66,-182 61.8386,-180.5763 57.5958,-178.6124 53.6177,-176.503"></path>
<polygon fill="#586e75" stroke="#586e75" points="49.0902,-173.9834 54.5534,-174.4487 51.2747,-175.1991 53.4592,-176.4148 53.4592,-176.4148 53.4592,-176.4148 51.2747,-175.1991 52.3651,-178.3809 49.0902,-173.9834 49.0902,-173.9834"></polygon>
</g>
<!-- 13&#45;&gt;25 -->
<g id="edge15" class="edge">
<title>13-&gt;25</title>
<path fill="none" stroke="#586e75" d="M278.8211,-219.2612C273.6425,-216.2682 267.714,-213.1896 262,-211 206.7216,-189.8176 187.4153,-202.8215 132,-182 127.6034,-180.348 123.0707,-178.2023 118.826,-175.971"></path>
<polygon fill="#586e75" stroke="#586e75" points="114.353,-173.5355 119.8203,-173.9505 116.5487,-174.731 118.7443,-175.9266 118.7443,-175.9266 118.7443,-175.9266 116.5487,-174.731 117.6683,-177.9026 114.353,-173.5355 114.353,-173.5355"></polygon>
</g>
<!-- 14 -->
<g id="node4" class="node">
<title>14</title>
<ellipse fill="none" stroke="#586e75" cx="229" cy="-229" rx="18" ry="18"></ellipse>
</g>
<!-- 14&#45;&gt;21 -->
<g id="edge16" class="edge">
<title>14-&gt;21</title>
<path fill="none" stroke="#586e75" d="M216.1581,-216.1581C205.92,-205.92 191.5131,-191.5131 180.434,-180.434"></path>
<polygon fill="#586e75" stroke="#586e75" points="176.8152,-176.8152 181.9418,-178.7598 178.583,-178.583 180.3508,-180.3508 180.3508,-180.3508 180.3508,-180.3508 178.583,-178.583 178.7598,-181.9418 176.8152,-176.8152 176.8152,-176.8152"></polygon>
</g>
<!-- 14&#45;&gt;22 -->
<g id="edge17" class="edge">
<title>14-&gt;22</title>
<path fill="none" stroke="#586e75" d="M229,-210.8939C229,-203.5688 229,-195.0213 229,-187.2449"></path>
<polygon fill="#586e75" stroke="#586e75" points="229,-182.009 231.2501,-187.009 229,-184.509 229.0001,-187.009 229.0001,-187.009 229.0001,-187.009 229,-184.509 226.7501,-187.0091 229,-182.009 229,-182.009"></polygon>
</g>
<!-- 14&#45;&gt;23 -->
<g id="edge18" class="edge">
<title>14-&gt;23</title>
<path fill="none" stroke="#586e75" d="M241.8419,-216.1581C252.08,-205.92 266.4869,-191.5131 277.566,-180.434"></path>
<polygon fill="#586e75" stroke="#586e75" points="281.1848,-176.8152 279.2402,-181.9418 279.417,-178.583 277.6492,-180.3508 277.6492,-180.3508 277.6492,-180.3508 279.417,-178.583 276.0582,-178.7598 281.1848,-176.8152 281.1848,-176.8152"></polygon>
</g>
<!-- 14&#45;&gt;24 -->
<g id="edge19" class="edge">
<title>14-&gt;24</title>
<path fill="none" stroke="#586e75" d="M213.8232,-219.2558C208.6448,-216.2624 202.7158,-213.185 197,-211 141.2992,-189.7075 121.7008,-203.2925 66,-182 61.8918,-180.4296 57.6734,-178.398 53.7028,-176.2681"></path>
<polygon fill="#586e75" stroke="#586e75" points="49.1768,-173.7442 54.6396,-174.2143 51.3603,-174.9618 53.5437,-176.1794 53.5437,-176.1794 53.5437,-176.1794 51.3603,-174.9618 52.4479,-178.1445 49.1768,-173.7442 49.1768,-173.7442"></polygon>
</g>
<!-- 14&#45;&gt;25 -->
<g id="edge20" class="edge">
<title>14-&gt;25</title>
<path fill="none" stroke="#586e75" d="M213.2055,-219.7328C208.0891,-216.8343 202.3528,-213.6923 197,-211 168.7396,-196.7859 160.3525,-196.0295 132,-182 127.8764,-179.9595 123.5212,-177.6778 119.3749,-175.4424"></path>
<polygon fill="#586e75" stroke="#586e75" points="114.9783,-173.0486 120.4456,-173.4635 117.174,-174.2441 119.3696,-175.4396 119.3696,-175.4396 119.3696,-175.4396 117.174,-174.2441 118.2937,-177.4157 114.9783,-173.0486 114.9783,-173.0486"></polygon>
</g>
<!-- 15 -->
<g id="node5" class="node">
<title>15</title>
<ellipse fill="none" stroke="#586e75" cx="164" cy="-229" rx="18" ry="18"></ellipse>
</g>
<!-- 15&#45;&gt;21 -->
<g id="edge21" class="edge">
<title>15-&gt;21</title>
<path fill="none" stroke="#586e75" d="M164,-210.8939C164,-203.5688 164,-195.0213 164,-187.2449"></path>
<polygon fill="#586e75" stroke="#586e75" points="164,-182.009 166.2501,-187.009 164,-184.509 164.0001,-187.009 164.0001,-187.009 164.0001,-187.009 164,-184.509 161.7501,-187.0091 164,-182.009 164,-182.009"></polygon>
</g>
<!-- 15&#45;&gt;22 -->
<g id="edge22" class="edge">
<title>15-&gt;22</title>
<path fill="none" stroke="#586e75" d="M176.8419,-216.1581C187.08,-205.92 201.4869,-191.5131 212.566,-180.434"></path>
<polygon fill="#586e75" stroke="#586e75" points="216.1848,-176.8152 214.2402,-181.9418 214.417,-178.583 212.6492,-180.3508 212.6492,-180.3508 212.6492,-180.3508 214.417,-178.583 211.0582,-178.7598 216.1848,-176.8152 216.1848,-176.8152"></polygon>
</g>
<!-- 15&#45;&gt;23 -->
<g id="edge23" class="edge">
<title>15-&gt;23</title>
<path fill="none" stroke="#586e75" d="M179.9783,-219.9514C185.3404,-217.0044 191.3849,-213.7785 197,-211 225.3525,-196.9705 233.7396,-196.2141 262,-182 265.8473,-180.0649 269.8927,-177.8975 273.7637,-175.7552"></path>
<polygon fill="#586e75" stroke="#586e75" points="278.2055,-173.2672 274.9428,-177.6737 276.0244,-174.489 273.8432,-175.7107 273.8432,-175.7107 273.8432,-175.7107 276.0244,-174.489 272.7436,-173.7477 278.2055,-173.2672 278.2055,-173.2672"></polygon>
</g>
<!-- 15&#45;&gt;24 -->
<g id="edge24" class="edge">
<title>15-&gt;24</title>
<path fill="none" stroke="#586e75" d="M148.2146,-219.7146C143.0987,-216.8151 137.3604,-213.6771 132,-211 103.336,-196.6842 94.664,-196.3158 66,-182 62.1472,-180.0758 58.0992,-177.9135 54.2274,-175.7729"></path>
<polygon fill="#586e75" stroke="#586e75" points="49.7854,-173.2854 55.2473,-173.7653 51.9667,-174.5069 54.1479,-175.7284 54.1479,-175.7284 54.1479,-175.7284 51.9667,-174.5069 53.0486,-177.6916 49.7854,-173.2854 49.7854,-173.2854"></polygon>
</g>
<!-- 15&#45;&gt;25 -->
<g id="edge25" class="edge">
<title>15-&gt;25</title>
<path fill="none" stroke="#586e75" d="M151.1581,-216.1581C140.92,-205.92 126.5131,-191.5131 115.434,-180.434"></path>
<polygon fill="#586e75" stroke="#586e75" points="111.8152,-176.8152 116.9418,-178.7598 113.583,-178.583 115.3508,-180.3508 115.3508,-180.3508 115.3508,-180.3508 113.583,-178.583 113.7598,-181.9418 111.8152,-176.8152 111.8152,-176.8152"></polygon>
</g>
<!-- 31 -->
<g id="node11" class="node">
<title>31</title>
<ellipse fill="none" stroke="#586e75" cx="164" cy="-99" rx="18" ry="18"></ellipse>
</g>
<!-- 21&#45;&gt;31 -->
<g id="edge26" class="edge">
<title>21-&gt;31</title>
<path fill="none" stroke="#586e75" d="M164,-145.8939C164,-138.5688 164,-130.0213 164,-122.2449"></path>
<polygon fill="#586e75" stroke="#586e75" points="164,-117.009 166.2501,-122.009 164,-119.509 164.0001,-122.009 164.0001,-122.009 164.0001,-122.009 164,-119.509 161.7501,-122.0091 164,-117.009 164,-117.009"></polygon>
</g>
<!-- 32 -->
<g id="node12" class="node">
<title>32</title>
<ellipse fill="none" stroke="#586e75" cx="229" cy="-99" rx="18" ry="18"></ellipse>
</g>
<!-- 21&#45;&gt;32 -->
<g id="edge27" class="edge">
<title>21-&gt;32</title>
<path fill="none" stroke="#586e75" d="M176.8419,-151.1581C187.08,-140.92 201.4869,-126.5131 212.566,-115.434"></path>
<polygon fill="#586e75" stroke="#586e75" points="216.1848,-111.8152 214.2402,-116.9418 214.417,-113.583 212.6492,-115.3508 212.6492,-115.3508 212.6492,-115.3508 214.417,-113.583 211.0582,-113.7598 216.1848,-111.8152 216.1848,-111.8152"></polygon>
</g>
<!-- 33 -->
<g id="node13" class="node">
<title>33</title>
<ellipse fill="none" stroke="#586e75" cx="294" cy="-99" rx="18" ry="18"></ellipse>
</g>
<!-- 21&#45;&gt;33 -->
<g id="edge28" class="edge">
<title>21-&gt;33</title>
<path fill="none" stroke="#586e75" d="M179.9783,-154.9514C185.3404,-152.0044 191.3849,-148.7785 197,-146 225.3525,-131.9705 233.7396,-131.2141 262,-117 265.8473,-115.0649 269.8927,-112.8975 273.7637,-110.7552"></path>
<polygon fill="#586e75" stroke="#586e75" points="278.2055,-108.2672 274.9428,-112.6737 276.0244,-109.489 273.8432,-110.7107 273.8432,-110.7107 273.8432,-110.7107 276.0244,-109.489 272.7436,-108.7477 278.2055,-108.2672 278.2055,-108.2672"></polygon>
</g>
<!-- 34 -->
<g id="node14" class="node">
<title>34</title>
<ellipse fill="none" stroke="#586e75" cx="34" cy="-99" rx="18" ry="18"></ellipse>
</g>
<!-- 21&#45;&gt;34 -->
<g id="edge29" class="edge">
<title>21-&gt;34</title>
<path fill="none" stroke="#586e75" d="M148.2146,-154.7146C143.0987,-151.8151 137.3604,-148.6771 132,-146 103.336,-131.6842 94.664,-131.3158 66,-117 62.1472,-115.0758 58.0992,-112.9135 54.2274,-110.7729"></path>
<polygon fill="#586e75" stroke="#586e75" points="49.7854,-108.2854 55.2473,-108.7653 51.9667,-109.5069 54.1479,-110.7284 54.1479,-110.7284 54.1479,-110.7284 51.9667,-109.5069 53.0486,-112.6916 49.7854,-108.2854 49.7854,-108.2854"></polygon>
</g>
<!-- 35 -->
<g id="node15" class="node">
<title>35</title>
<ellipse fill="none" stroke="#586e75" cx="99" cy="-99" rx="18" ry="18"></ellipse>
</g>
<!-- 21&#45;&gt;35 -->
<g id="edge30" class="edge">
<title>21-&gt;35</title>
<path fill="none" stroke="#586e75" d="M151.1581,-151.1581C140.92,-140.92 126.5131,-126.5131 115.434,-115.434"></path>
<polygon fill="#586e75" stroke="#586e75" points="111.8152,-111.8152 116.9418,-113.7598 113.583,-113.583 115.3508,-115.3508 115.3508,-115.3508 115.3508,-115.3508 113.583,-113.583 113.7598,-116.9418 111.8152,-111.8152 111.8152,-111.8152"></polygon>
</g>
<!-- 22&#45;&gt;31 -->
<g id="edge31" class="edge">
<title>22-&gt;31</title>
<path fill="none" stroke="#586e75" d="M216.1581,-151.1581C205.92,-140.92 191.5131,-126.5131 180.434,-115.434"></path>
<polygon fill="#586e75" stroke="#586e75" points="176.8152,-111.8152 181.9418,-113.7598 178.583,-113.583 180.3508,-115.3508 180.3508,-115.3508 180.3508,-115.3508 178.583,-113.583 178.7598,-116.9418 176.8152,-111.8152 176.8152,-111.8152"></polygon>
</g>
<!-- 22&#45;&gt;32 -->
<g id="edge32" class="edge">
<title>22-&gt;32</title>
<path fill="none" stroke="#586e75" d="M229,-145.8939C229,-138.5688 229,-130.0213 229,-122.2449"></path>
<polygon fill="#586e75" stroke="#586e75" points="229,-117.009 231.2501,-122.009 229,-119.509 229.0001,-122.009 229.0001,-122.009 229.0001,-122.009 229,-119.509 226.7501,-122.0091 229,-117.009 229,-117.009"></polygon>
</g>
<!-- 22&#45;&gt;33 -->
<g id="edge33" class="edge">
<title>22-&gt;33</title>
<path fill="none" stroke="#586e75" d="M241.8419,-151.1581C252.08,-140.92 266.4869,-126.5131 277.566,-115.434"></path>
<polygon fill="#586e75" stroke="#586e75" points="281.1848,-111.8152 279.2402,-116.9418 279.417,-113.583 277.6492,-115.3508 277.6492,-115.3508 277.6492,-115.3508 279.417,-113.583 276.0582,-113.7598 281.1848,-111.8152 281.1848,-111.8152"></polygon>
</g>
<!-- 22&#45;&gt;34 -->
<g id="edge34" class="edge">
<title>22-&gt;34</title>
<path fill="none" stroke="#586e75" d="M213.8232,-154.2558C208.6448,-151.2624 202.7158,-148.185 197,-146 141.2992,-124.7075 121.7008,-138.2925 66,-117 61.8918,-115.4296 57.6734,-113.398 53.7028,-111.2681"></path>
<polygon fill="#586e75" stroke="#586e75" points="49.1768,-108.7442 54.6396,-109.2143 51.3603,-109.9618 53.5437,-111.1794 53.5437,-111.1794 53.5437,-111.1794 51.3603,-109.9618 52.4479,-113.1445 49.1768,-108.7442 49.1768,-108.7442"></polygon>
</g>
<!-- 22&#45;&gt;35 -->
<g id="edge35" class="edge">
<title>22-&gt;35</title>
<path fill="none" stroke="#586e75" d="M213.2055,-154.7328C208.0891,-151.8343 202.3528,-148.6923 197,-146 168.7396,-131.7859 160.3525,-131.0295 132,-117 127.8764,-114.9595 123.5212,-112.6778 119.3749,-110.4424"></path>
<polygon fill="#586e75" stroke="#586e75" points="114.9783,-108.0486 120.4456,-108.4635 117.174,-109.2441 119.3696,-110.4396 119.3696,-110.4396 119.3696,-110.4396 117.174,-109.2441 118.2937,-112.4157 114.9783,-108.0486 114.9783,-108.0486"></polygon>
</g>
<!-- 23&#45;&gt;31 -->
<g id="edge36" class="edge">
<title>23-&gt;31</title>
<path fill="none" stroke="#586e75" d="M278.2055,-154.7328C273.0891,-151.8343 267.3528,-148.6923 262,-146 233.7396,-131.7859 225.3525,-131.0295 197,-117 192.8764,-114.9595 188.5212,-112.6778 184.3749,-110.4424"></path>
<polygon fill="#586e75" stroke="#586e75" points="179.9783,-108.0486 185.4456,-108.4635 182.174,-109.2441 184.3696,-110.4396 184.3696,-110.4396 184.3696,-110.4396 182.174,-109.2441 183.2937,-112.4157 179.9783,-108.0486 179.9783,-108.0486"></polygon>
</g>
<!-- 23&#45;&gt;32 -->
<g id="edge37" class="edge">
<title>23-&gt;32</title>
<path fill="none" stroke="#586e75" d="M281.1581,-151.1581C270.92,-140.92 256.5131,-126.5131 245.434,-115.434"></path>
<polygon fill="#586e75" stroke="#586e75" points="241.8152,-111.8152 246.9418,-113.7598 243.583,-113.583 245.3508,-115.3508 245.3508,-115.3508 245.3508,-115.3508 243.583,-113.583 243.7598,-116.9418 241.8152,-111.8152 241.8152,-111.8152"></polygon>
</g>
<!-- 23&#45;&gt;33 -->
<g id="edge38" class="edge">
<title>23-&gt;33</title>
<path fill="none" stroke="#586e75" d="M294,-145.8939C294,-138.5688 294,-130.0213 294,-122.2449"></path>
<polygon fill="#586e75" stroke="#586e75" points="294,-117.009 296.2501,-122.009 294,-119.509 294.0001,-122.009 294.0001,-122.009 294.0001,-122.009 294,-119.509 291.7501,-122.0091 294,-117.009 294,-117.009"></polygon>
</g>
<!-- 23&#45;&gt;34 -->
<g id="edge39" class="edge">
<title>23-&gt;34</title>
<path fill="none" stroke="#586e75" d="M278.9098,-154.0166C273.7372,-151.0073 267.7897,-147.9808 262,-146 178.6818,-117.4948 149.3182,-145.5052 66,-117 61.8386,-115.5763 57.5958,-113.6124 53.6177,-111.503"></path>
<polygon fill="#586e75" stroke="#586e75" points="49.0902,-108.9834 54.5534,-109.4487 51.2747,-110.1991 53.4592,-111.4148 53.4592,-111.4148 53.4592,-111.4148 51.2747,-110.1991 52.3651,-113.3809 49.0902,-108.9834 49.0902,-108.9834"></polygon>
</g>
<!-- 23&#45;&gt;35 -->
<g id="edge40" class="edge">
<title>23-&gt;35</title>
<path fill="none" stroke="#586e75" d="M278.8211,-154.2612C273.6425,-151.2682 267.714,-148.1896 262,-146 206.7216,-124.8176 187.4153,-137.8215 132,-117 127.6034,-115.348 123.0707,-113.2023 118.826,-110.971"></path>
<polygon fill="#586e75" stroke="#586e75" points="114.353,-108.5355 119.8203,-108.9505 116.5487,-109.731 118.7443,-110.9266 118.7443,-110.9266 118.7443,-110.9266 116.5487,-109.731 117.6683,-112.9026 114.353,-108.5355 114.353,-108.5355"></polygon>
</g>
<!-- 24&#45;&gt;31 -->
<g id="edge41" class="edge">
<title>24-&gt;31</title>
<path fill="none" stroke="#586e75" d="M49.7854,-154.7146C54.9013,-151.8151 60.6396,-148.6771 66,-146 94.664,-131.6842 103.336,-131.3158 132,-117 135.8528,-115.0758 139.9008,-112.9135 143.7726,-110.7729"></path>
<polygon fill="#586e75" stroke="#586e75" points="148.2146,-108.2854 144.9514,-112.6916 146.0333,-109.5069 143.8521,-110.7284 143.8521,-110.7284 143.8521,-110.7284 146.0333,-109.5069 142.7527,-108.7653 148.2146,-108.2854 148.2146,-108.2854"></polygon>
</g>
<!-- 24&#45;&gt;32 -->
<g id="edge42" class="edge">
<title>24-&gt;32</title>
<path fill="none" stroke="#586e75" d="M49.1768,-154.2558C54.3552,-151.2624 60.2842,-148.185 66,-146 121.7008,-124.7075 141.2992,-138.2925 197,-117 201.1082,-115.4296 205.3266,-113.398 209.2972,-111.2681"></path>
<polygon fill="#586e75" stroke="#586e75" points="213.8232,-108.7442 210.5521,-113.1445 211.6397,-109.9618 209.4563,-111.1794 209.4563,-111.1794 209.4563,-111.1794 211.6397,-109.9618 208.3604,-109.2143 213.8232,-108.7442 213.8232,-108.7442"></polygon>
</g>
<!-- 24&#45;&gt;33 -->
<g id="edge43" class="edge">
<title>24-&gt;33</title>
<path fill="none" stroke="#586e75" d="M49.0902,-154.0166C54.2628,-151.0073 60.2103,-147.9808 66,-146 149.3182,-117.4948 178.6818,-145.5052 262,-117 266.1614,-115.5763 270.4042,-113.6124 274.3823,-111.503"></path>
<polygon fill="#586e75" stroke="#586e75" points="278.9098,-108.9834 275.6349,-113.3809 276.7253,-110.1991 274.5408,-111.4148 274.5408,-111.4148 274.5408,-111.4148 276.7253,-110.1991 273.4466,-109.4487 278.9098,-108.9834 278.9098,-108.9834"></polygon>
</g>
<!-- 24&#45;&gt;34 -->
<g id="edge44" class="edge">
<title>24-&gt;34</title>
<path fill="none" stroke="#586e75" d="M34,-145.8939C34,-138.5688 34,-130.0213 34,-122.2449"></path>
<polygon fill="#586e75" stroke="#586e75" points="34,-117.009 36.2501,-122.009 34,-119.509 34.0001,-122.009 34.0001,-122.009 34.0001,-122.009 34,-119.509 31.7501,-122.0091 34,-117.009 34,-117.009"></polygon>
</g>
<!-- 24&#45;&gt;35 -->
<g id="edge45" class="edge">
<title>24-&gt;35</title>
<path fill="none" stroke="#586e75" d="M46.8419,-151.1581C57.08,-140.92 71.4869,-126.5131 82.566,-115.434"></path>
<polygon fill="#586e75" stroke="#586e75" points="86.1848,-111.8152 84.2402,-116.9418 84.417,-113.583 82.6492,-115.3508 82.6492,-115.3508 82.6492,-115.3508 84.417,-113.583 81.0582,-113.7598 86.1848,-111.8152 86.1848,-111.8152"></polygon>
</g>
<!-- 25&#45;&gt;31 -->
<g id="edge46" class="edge">
<title>25-&gt;31</title>
<path fill="none" stroke="#586e75" d="M111.8419,-151.1581C122.08,-140.92 136.4869,-126.5131 147.566,-115.434"></path>
<polygon fill="#586e75" stroke="#586e75" points="151.1848,-111.8152 149.2402,-116.9418 149.417,-113.583 147.6492,-115.3508 147.6492,-115.3508 147.6492,-115.3508 149.417,-113.583 146.0582,-113.7598 151.1848,-111.8152 151.1848,-111.8152"></polygon>
</g>
<!-- 25&#45;&gt;32 -->
<g id="edge47" class="edge">
<title>25-&gt;32</title>
<path fill="none" stroke="#586e75" d="M114.9783,-154.9514C120.3404,-152.0044 126.3849,-148.7785 132,-146 160.3525,-131.9705 168.7396,-131.2141 197,-117 200.8473,-115.0649 204.8927,-112.8975 208.7637,-110.7552"></path>
<polygon fill="#586e75" stroke="#586e75" points="213.2055,-108.2672 209.9428,-112.6737 211.0244,-109.489 208.8432,-110.7107 208.8432,-110.7107 208.8432,-110.7107 211.0244,-109.489 207.7436,-108.7477 213.2055,-108.2672 213.2055,-108.2672"></polygon>
</g>
<!-- 25&#45;&gt;33 -->
<g id="edge48" class="edge">
<title>25-&gt;33</title>
<path fill="none" stroke="#586e75" d="M114.353,-154.4645C119.774,-151.4145 126.0132,-148.2495 132,-146 187.4153,-125.1785 206.7216,-138.1824 262,-117 266.107,-115.4262 270.3247,-113.3932 274.2952,-111.2627"></path>
<polygon fill="#586e75" stroke="#586e75" points="278.8211,-108.7388 275.5502,-113.1392 276.6377,-109.9564 274.4543,-111.1741 274.4543,-111.1741 274.4543,-111.1741 276.6377,-109.9564 273.3584,-109.209 278.8211,-108.7388 278.8211,-108.7388"></polygon>
</g>
<!-- 25&#45;&gt;34 -->
<g id="edge49" class="edge">
<title>25-&gt;34</title>
<path fill="none" stroke="#586e75" d="M86.1581,-151.1581C75.92,-140.92 61.5131,-126.5131 50.434,-115.434"></path>
<polygon fill="#586e75" stroke="#586e75" points="46.8152,-111.8152 51.9418,-113.7598 48.583,-113.583 50.3508,-115.3508 50.3508,-115.3508 50.3508,-115.3508 48.583,-113.583 48.7598,-116.9418 46.8152,-111.8152 46.8152,-111.8152"></polygon>
</g>
<!-- 25&#45;&gt;35 -->
<g id="edge50" class="edge">
<title>25-&gt;35</title>
<path fill="none" stroke="#586e75" d="M99,-145.8939C99,-138.5688 99,-130.0213 99,-122.2449"></path>
<polygon fill="#586e75" stroke="#586e75" points="99,-117.009 101.2501,-122.009 99,-119.509 99.0001,-122.009 99.0001,-122.009 99.0001,-122.009 99,-119.509 96.7501,-122.0091 99,-117.009 99,-117.009"></polygon>
</g>
<!-- 41 -->
<g id="node16" class="node">
<title>41</title>
<ellipse fill="none" stroke="#586e75" cx="164" cy="-34" rx="18" ry="18"></ellipse>
</g>
<!-- 31&#45;&gt;41 -->
<g id="edge51" class="edge">
<title>31-&gt;41</title>
<path fill="none" stroke="#586e75" d="M164,-80.8939C164,-73.5688 164,-65.0213 164,-57.2449"></path>
<polygon fill="#586e75" stroke="#586e75" points="164,-52.009 166.2501,-57.009 164,-54.509 164.0001,-57.009 164.0001,-57.009 164.0001,-57.009 164,-54.509 161.7501,-57.0091 164,-52.009 164,-52.009"></polygon>
</g>
<!-- 32&#45;&gt;41 -->
<g id="edge52" class="edge">
<title>32-&gt;41</title>
<path fill="none" stroke="#586e75" d="M216.1581,-86.1581C205.92,-75.92 191.5131,-61.5131 180.434,-50.434"></path>
<polygon fill="#586e75" stroke="#586e75" points="176.8152,-46.8152 181.9418,-48.7598 178.583,-48.583 180.3508,-50.3508 180.3508,-50.3508 180.3508,-50.3508 178.583,-48.583 178.7598,-51.9418 176.8152,-46.8152 176.8152,-46.8152"></polygon>
</g>
<!-- 33&#45;&gt;41 -->
<g id="edge53" class="edge">
<title>33-&gt;41</title>
<path fill="none" stroke="#586e75" d="M278.1604,-89.821C273.0415,-86.9272 267.3152,-83.7657 262,-81 235.8108,-67.3727 205.0286,-52.847 185.0495,-43.6111"></path>
<polygon fill="#586e75" stroke="#586e75" points="180.4607,-41.495 185.9434,-41.5456 182.7309,-42.5419 185.0012,-43.5889 185.0012,-43.5889 185.0012,-43.5889 182.7309,-42.5419 184.0589,-45.6321 180.4607,-41.495 180.4607,-41.495"></polygon>
</g>
<!-- 34&#45;&gt;41 -->
<g id="edge54" class="edge">
<title>34-&gt;41</title>
<path fill="none" stroke="#586e75" d="M49.8396,-89.821C54.9585,-86.9272 60.6848,-83.7657 66,-81 92.1892,-67.3727 122.9714,-52.847 142.9505,-43.6111"></path>
<polygon fill="#586e75" stroke="#586e75" points="147.5393,-41.495 143.9411,-45.6321 145.2691,-42.5419 142.9988,-43.5889 142.9988,-43.5889 142.9988,-43.5889 145.2691,-42.5419 142.0566,-41.5456 147.5393,-41.495 147.5393,-41.495"></polygon>
</g>
<!-- 35&#45;&gt;41 -->
<g id="edge55" class="edge">
<title>35-&gt;41</title>
<path fill="none" stroke="#586e75" d="M111.8419,-86.1581C122.08,-75.92 136.4869,-61.5131 147.566,-50.434"></path>
<polygon fill="#586e75" stroke="#586e75" points="151.1848,-46.8152 149.2402,-51.9418 149.417,-48.583 147.6492,-50.3508 147.6492,-50.3508 147.6492,-50.3508 149.417,-48.583 146.0582,-48.7598 151.1848,-46.8152 151.1848,-46.8152"></polygon>
</g>
<!-- 51 -->
<g id="node17" class="node">
<title>51</title>
<ellipse fill="none" stroke="#586e75" cx="424" cy="-229" rx="18" ry="18"></ellipse>
</g>
<!-- 61 -->
<g id="node22" class="node">
<title>61</title>
<ellipse fill="none" stroke="#586e75" cx="489" cy="-164" rx="18" ry="18"></ellipse>
</g>
<!-- 51&#45;&gt;61 -->
<g id="edge56" class="edge">
<title>51-&gt;61</title>
<path fill="none" stroke="#586e75" d="M436.8419,-216.1581C447.08,-205.92 461.4869,-191.5131 472.566,-180.434"></path>
<polygon fill="#586e75" stroke="#586e75" points="476.1848,-176.8152 474.2402,-181.9418 474.417,-178.583 472.6492,-180.3508 472.6492,-180.3508 472.6492,-180.3508 474.417,-178.583 471.0582,-178.7598 476.1848,-176.8152 476.1848,-176.8152"></polygon>
</g>
<!-- 62 -->
<g id="node23" class="node">
<title>62</title>
<ellipse fill="none" stroke="#586e75" stroke-dasharray="5,2" cx="554" cy="-164" rx="18" ry="18"></ellipse>
</g>
<!-- 51&#45;&gt;62 -->
<g id="edge71" class="edge">
<title>51-&gt;62</title>
</g>
<!-- 63 -->
<g id="node24" class="node">
<title>63</title>
<ellipse fill="none" stroke="#586e75" stroke-dasharray="5,2" cx="619" cy="-164" rx="18" ry="18"></ellipse>
</g>
<!-- 51&#45;&gt;63 -->
<g id="edge72" class="edge">
<title>51-&gt;63</title>
</g>
<!-- 64 -->
<g id="node25" class="node">
<title>64</title>
<ellipse fill="none" stroke="#586e75" cx="359" cy="-164" rx="18" ry="18"></ellipse>
</g>
<!-- 51&#45;&gt;64 -->
<g id="edge57" class="edge">
<title>51-&gt;64</title>
<path fill="none" stroke="#586e75" d="M411.1581,-216.1581C400.92,-205.92 386.5131,-191.5131 375.434,-180.434"></path>
<polygon fill="#586e75" stroke="#586e75" points="371.8152,-176.8152 376.9418,-178.7598 373.583,-178.583 375.3508,-180.3508 375.3508,-180.3508 375.3508,-180.3508 373.583,-178.583 373.7598,-181.9418 371.8152,-176.8152 371.8152,-176.8152"></polygon>
</g>
<!-- 65 -->
<g id="node26" class="node">
<title>65</title>
<ellipse fill="none" stroke="#586e75" stroke-dasharray="5,2" cx="424" cy="-164" rx="18" ry="18"></ellipse>
</g>
<!-- 51&#45;&gt;65 -->
<g id="edge73" class="edge">
<title>51-&gt;65</title>
</g>
<!-- 52 -->
<g id="node18" class="node">
<title>52</title>
<ellipse fill="none" stroke="#586e75" cx="359" cy="-229" rx="18" ry="18"></ellipse>
</g>
<!-- 52&#45;&gt;61 -->
<g id="edge58" class="edge">
<title>52-&gt;61</title>
<path fill="none" stroke="#586e75" d="M374.9783,-219.9514C380.3404,-217.0044 386.3849,-213.7785 392,-211 420.3525,-196.9705 428.7396,-196.2141 457,-182 460.8473,-180.0649 464.8927,-177.8975 468.7637,-175.7552"></path>
<polygon fill="#586e75" stroke="#586e75" points="473.2055,-173.2672 469.9428,-177.6737 471.0244,-174.489 468.8432,-175.7107 468.8432,-175.7107 468.8432,-175.7107 471.0244,-174.489 467.7436,-173.7477 473.2055,-173.2672 473.2055,-173.2672"></polygon>
</g>
<!-- 52&#45;&gt;62 -->
<g id="edge74" class="edge">
<title>52-&gt;62</title>
</g>
<!-- 52&#45;&gt;63 -->
<g id="edge75" class="edge">
<title>52-&gt;63</title>
</g>
<!-- 52&#45;&gt;64 -->
<g id="edge59" class="edge">
<title>52-&gt;64</title>
<path fill="none" stroke="#586e75" d="M359,-210.8939C359,-203.5688 359,-195.0213 359,-187.2449"></path>
<polygon fill="#586e75" stroke="#586e75" points="359,-182.009 361.2501,-187.009 359,-184.509 359.0001,-187.009 359.0001,-187.009 359.0001,-187.009 359,-184.509 356.7501,-187.0091 359,-182.009 359,-182.009"></polygon>
</g>
<!-- 52&#45;&gt;65 -->
<g id="edge76" class="edge">
<title>52-&gt;65</title>
</g>
<!-- 53 -->
<g id="node19" class="node">
<title>53</title>
<ellipse fill="none" stroke="#586e75" stroke-dasharray="5,2" cx="619" cy="-229" rx="18" ry="18"></ellipse>
</g>
<!-- 53&#45;&gt;61 -->
<g id="edge80" class="edge">
<title>53-&gt;61</title>
</g>
<!-- 53&#45;&gt;62 -->
<g id="edge81" class="edge">
<title>53-&gt;62</title>
</g>
<!-- 53&#45;&gt;63 -->
<g id="edge82" class="edge">
<title>53-&gt;63</title>
</g>
<!-- 53&#45;&gt;64 -->
<g id="edge83" class="edge">
<title>53-&gt;64</title>
</g>
<!-- 53&#45;&gt;65 -->
<g id="edge84" class="edge">
<title>53-&gt;65</title>
</g>
<!-- 54 -->
<g id="node20" class="node">
<title>54</title>
<ellipse fill="none" stroke="#586e75" cx="554" cy="-229" rx="18" ry="18"></ellipse>
</g>
<!-- 54&#45;&gt;61 -->
<g id="edge60" class="edge">
<title>54-&gt;61</title>
<path fill="none" stroke="#586e75" d="M541.1581,-216.1581C530.92,-205.92 516.5131,-191.5131 505.434,-180.434"></path>
<polygon fill="#586e75" stroke="#586e75" points="501.8152,-176.8152 506.9418,-178.7598 503.583,-178.583 505.3508,-180.3508 505.3508,-180.3508 505.3508,-180.3508 503.583,-178.583 503.7598,-181.9418 501.8152,-176.8152 501.8152,-176.8152"></polygon>
</g>
<!-- 54&#45;&gt;62 -->
<g id="edge77" class="edge">
<title>54-&gt;62</title>
</g>
<!-- 54&#45;&gt;63 -->
<g id="edge78" class="edge">
<title>54-&gt;63</title>
</g>
<!-- 54&#45;&gt;64 -->
<g id="edge61" class="edge">
<title>54-&gt;64</title>
<path fill="none" stroke="#586e75" d="M538.8211,-219.2612C533.6425,-216.2682 527.714,-213.1896 522,-211 466.7216,-189.8176 447.4153,-202.8215 392,-182 387.6034,-180.348 383.0707,-178.2023 378.826,-175.971"></path>
<polygon fill="#586e75" stroke="#586e75" points="374.353,-173.5355 379.8203,-173.9505 376.5487,-174.731 378.7443,-175.9266 378.7443,-175.9266 378.7443,-175.9266 376.5487,-174.731 377.6683,-177.9026 374.353,-173.5355 374.353,-173.5355"></polygon>
</g>
<!-- 54&#45;&gt;65 -->
<g id="edge79" class="edge">
<title>54-&gt;65</title>
</g>
<!-- 55 -->
<g id="node21" class="node">
<title>55</title>
<ellipse fill="none" stroke="#586e75" stroke-dasharray="5,2" cx="489" cy="-229" rx="18" ry="18"></ellipse>
</g>
<!-- 55&#45;&gt;61 -->
<g id="edge85" class="edge">
<title>55-&gt;61</title>
</g>
<!-- 55&#45;&gt;62 -->
<g id="edge86" class="edge">
<title>55-&gt;62</title>
</g>
<!-- 55&#45;&gt;63 -->
<g id="edge87" class="edge">
<title>55-&gt;63</title>
</g>
<!-- 55&#45;&gt;64 -->
<g id="edge88" class="edge">
<title>55-&gt;64</title>
</g>
<!-- 55&#45;&gt;65 -->
<g id="edge89" class="edge">
<title>55-&gt;65</title>
</g>
<!-- 71 -->
<g id="node27" class="node">
<title>71</title>
<ellipse fill="none" stroke="#586e75" cx="489" cy="-99" rx="18" ry="18"></ellipse>
</g>
<!-- 61&#45;&gt;71 -->
<g id="edge62" class="edge">
<title>61-&gt;71</title>
<path fill="none" stroke="#586e75" d="M489,-145.8939C489,-138.5688 489,-130.0213 489,-122.2449"></path>
<polygon fill="#586e75" stroke="#586e75" points="489,-117.009 491.2501,-122.009 489,-119.509 489.0001,-122.009 489.0001,-122.009 489.0001,-122.009 489,-119.509 486.7501,-122.0091 489,-117.009 489,-117.009"></polygon>
</g>
<!-- 72 -->
<g id="node28" class="node">
<title>72</title>
<ellipse fill="none" stroke="#586e75" stroke-dasharray="5,2" cx="554" cy="-99" rx="18" ry="18"></ellipse>
</g>
<!-- 61&#45;&gt;72 -->
<g id="edge90" class="edge">
<title>61-&gt;72</title>
</g>
<!-- 73 -->
<g id="node29" class="node">
<title>73</title>
<ellipse fill="none" stroke="#586e75" cx="619" cy="-99" rx="18" ry="18"></ellipse>
</g>
<!-- 61&#45;&gt;73 -->
<g id="edge63" class="edge">
<title>61-&gt;73</title>
<path fill="none" stroke="#586e75" d="M504.9783,-154.9514C510.3404,-152.0044 516.3849,-148.7785 522,-146 550.3525,-131.9705 558.7396,-131.2141 587,-117 590.8473,-115.0649 594.8927,-112.8975 598.7637,-110.7552"></path>
<polygon fill="#586e75" stroke="#586e75" points="603.2055,-108.2672 599.9428,-112.6737 601.0244,-109.489 598.8432,-110.7107 598.8432,-110.7107 598.8432,-110.7107 601.0244,-109.489 597.7436,-108.7477 603.2055,-108.2672 603.2055,-108.2672"></polygon>
</g>
<!-- 74 -->
<g id="node30" class="node">
<title>74</title>
<ellipse fill="none" stroke="#586e75" stroke-dasharray="5,2" cx="359" cy="-99" rx="18" ry="18"></ellipse>
</g>
<!-- 61&#45;&gt;74 -->
<g id="edge91" class="edge">
<title>61-&gt;74</title>
</g>
<!-- 75 -->
<g id="node31" class="node">
<title>75</title>
<ellipse fill="none" stroke="#586e75" cx="424" cy="-99" rx="18" ry="18"></ellipse>
</g>
<!-- 61&#45;&gt;75 -->
<g id="edge64" class="edge">
<title>61-&gt;75</title>
<path fill="none" stroke="#586e75" d="M476.1581,-151.1581C465.92,-140.92 451.5131,-126.5131 440.434,-115.434"></path>
<polygon fill="#586e75" stroke="#586e75" points="436.8152,-111.8152 441.9418,-113.7598 438.583,-113.583 440.3508,-115.3508 440.3508,-115.3508 440.3508,-115.3508 438.583,-113.583 438.7598,-116.9418 436.8152,-111.8152 436.8152,-111.8152"></polygon>
</g>
<!-- 62&#45;&gt;71 -->
<g id="edge94" class="edge">
<title>62-&gt;71</title>
</g>
<!-- 62&#45;&gt;72 -->
<g id="edge95" class="edge">
<title>62-&gt;72</title>
</g>
<!-- 62&#45;&gt;73 -->
<g id="edge96" class="edge">
<title>62-&gt;73</title>
</g>
<!-- 62&#45;&gt;74 -->
<g id="edge97" class="edge">
<title>62-&gt;74</title>
</g>
<!-- 62&#45;&gt;75 -->
<g id="edge98" class="edge">
<title>62-&gt;75</title>
</g>
<!-- 63&#45;&gt;71 -->
<g id="edge99" class="edge">
<title>63-&gt;71</title>
</g>
<!-- 63&#45;&gt;72 -->
<g id="edge100" class="edge">
<title>63-&gt;72</title>
</g>
<!-- 63&#45;&gt;73 -->
<g id="edge101" class="edge">
<title>63-&gt;73</title>
</g>
<!-- 63&#45;&gt;74 -->
<g id="edge102" class="edge">
<title>63-&gt;74</title>
</g>
<!-- 63&#45;&gt;75 -->
<g id="edge103" class="edge">
<title>63-&gt;75</title>
</g>
<!-- 64&#45;&gt;71 -->
<g id="edge65" class="edge">
<title>64-&gt;71</title>
<path fill="none" stroke="#586e75" d="M374.9783,-154.9514C380.3404,-152.0044 386.3849,-148.7785 392,-146 420.3525,-131.9705 428.7396,-131.2141 457,-117 460.8473,-115.0649 464.8927,-112.8975 468.7637,-110.7552"></path>
<polygon fill="#586e75" stroke="#586e75" points="473.2055,-108.2672 469.9428,-112.6737 471.0244,-109.489 468.8432,-110.7107 468.8432,-110.7107 468.8432,-110.7107 471.0244,-109.489 467.7436,-108.7477 473.2055,-108.2672 473.2055,-108.2672"></polygon>
</g>
<!-- 64&#45;&gt;72 -->
<g id="edge92" class="edge">
<title>64-&gt;72</title>
</g>
<!-- 64&#45;&gt;73 -->
<g id="edge66" class="edge">
<title>64-&gt;73</title>
<path fill="none" stroke="#586e75" d="M374.2651,-154.2171C379.679,-151.1473 385.9362,-148.033 392,-146 475.0751,-118.1475 504.1083,-145.3936 587,-117 591.1608,-115.5748 595.4034,-113.6102 599.3814,-111.5005"></path>
<polygon fill="#586e75" stroke="#586e75" points="603.909,-108.9809 600.6341,-113.3784 601.7244,-110.1966 599.5399,-111.4123 599.5399,-111.4123 599.5399,-111.4123 601.7244,-110.1966 598.4458,-109.4463 603.909,-108.9809 603.909,-108.9809"></polygon>
</g>
<!-- 64&#45;&gt;74 -->
<g id="edge93" class="edge">
<title>64-&gt;74</title>
</g>
<!-- 64&#45;&gt;75 -->
<g id="edge67" class="edge">
<title>64-&gt;75</title>
<path fill="none" stroke="#586e75" d="M371.8419,-151.1581C382.08,-140.92 396.4869,-126.5131 407.566,-115.434"></path>
<polygon fill="#586e75" stroke="#586e75" points="411.1848,-111.8152 409.2402,-116.9418 409.417,-113.583 407.6492,-115.3508 407.6492,-115.3508 407.6492,-115.3508 409.417,-113.583 406.0582,-113.7598 411.1848,-111.8152 411.1848,-111.8152"></polygon>
</g>
<!-- 65&#45;&gt;71 -->
<g id="edge104" class="edge">
<title>65-&gt;71</title>
</g>
<!-- 65&#45;&gt;72 -->
<g id="edge105" class="edge">
<title>65-&gt;72</title>
</g>
<!-- 65&#45;&gt;73 -->
<g id="edge106" class="edge">
<title>65-&gt;73</title>
</g>
<!-- 65&#45;&gt;74 -->
<g id="edge107" class="edge">
<title>65-&gt;74</title>
</g>
<!-- 65&#45;&gt;75 -->
<g id="edge108" class="edge">
<title>65-&gt;75</title>
</g>
<!-- 81 -->
<g id="node32" class="node">
<title>81</title>
<ellipse fill="none" stroke="#586e75" cx="489" cy="-34" rx="18" ry="18"></ellipse>
</g>
<!-- 71&#45;&gt;81 -->
<g id="edge68" class="edge">
<title>71-&gt;81</title>
<path fill="none" stroke="#586e75" d="M489,-80.8939C489,-73.5688 489,-65.0213 489,-57.2449"></path>
<polygon fill="#586e75" stroke="#586e75" points="489,-52.009 491.2501,-57.009 489,-54.509 489.0001,-57.009 489.0001,-57.009 489.0001,-57.009 489,-54.509 486.7501,-57.0091 489,-52.009 489,-52.009"></polygon>
</g>
<!-- 72&#45;&gt;81 -->
<g id="edge109" class="edge">
<title>72-&gt;81</title>
</g>
<!-- 73&#45;&gt;81 -->
<g id="edge69" class="edge">
<title>73-&gt;81</title>
<path fill="none" stroke="#586e75" d="M603.1604,-89.821C598.0415,-86.9272 592.3152,-83.7657 587,-81 560.8108,-67.3727 530.0286,-52.847 510.0495,-43.6111"></path>
<polygon fill="#586e75" stroke="#586e75" points="505.4607,-41.495 510.9434,-41.5456 507.7309,-42.5419 510.0012,-43.5889 510.0012,-43.5889 510.0012,-43.5889 507.7309,-42.5419 509.0589,-45.6321 505.4607,-41.495 505.4607,-41.495"></polygon>
</g>
<!-- 74&#45;&gt;81 -->
<g id="edge110" class="edge">
<title>74-&gt;81</title>
</g>
<!-- 75&#45;&gt;81 -->
<g id="edge70" class="edge">
<title>75-&gt;81</title>
<path fill="none" stroke="#586e75" d="M436.8419,-86.1581C447.08,-75.92 461.4869,-61.5131 472.566,-50.434"></path>
<polygon fill="#586e75" stroke="#586e75" points="476.1848,-46.8152 474.2402,-51.9418 474.417,-48.583 472.6492,-50.3508 472.6492,-50.3508 472.6492,-50.3508 474.417,-48.583 471.0582,-48.7598 476.1848,-46.8152 476.1848,-46.8152"></polygon>
</g>
</g>
</svg>
</p><div class="footer"><hr class="hr_bottom"><div class="multi_column"><h6 class="bottom_left">图神经网络导论</h6><h6 class="bottom_center">神经网络</h6><h6 class="bottom_right">tengzhang@hust.edu.cn</h6></div></div>
</section></section><section><section data-notes="" lineno="1462" class="slide " data-line="1462" data-h="17" data-v="0">
<div class="header"><img class="hust" src=""><div class="title"><hr class="hr_top"><h5>数据增强</h5></div></div>
<p>深层神经网络需要大量的训练数据才能获得比较理想的效果</p>
<br>
<p>数据量有限的情况下，可以通过数据增强来增加数据量，避免过拟合</p>
<br>
<p>目前数据增强主要用于图像数据，文本等其它类型的数据还没有太好的方法</p>
<br>
<p>常见的增强方法：</p>
<ul>
<li>旋转：将图像随机旋转一定角度</li>
<li>翻转：将图像沿水平或垂直方法随机翻转一定角度</li>
<li>缩放：将图像放大或缩小一定比例</li>
<li>平移：将图像沿水平或垂直方法平移一定距离</li>
<li>加噪声：加入随机噪声</li>
</ul>
<div class="footer"><hr class="hr_bottom"><div class="multi_column"><h6 class="bottom_left">图神经网络导论</h6><h6 class="bottom_center">神经网络</h6><h6 class="bottom_right">tengzhang@hust.edu.cn</h6></div></div>
</section><section vertical="true" data-notes="" lineno="1488" class="slide " data-line="1488" data-h="17" data-v="1">
<div class="header"><img class="hust" src=""><div class="title"><hr class="hr_top"><h5>mixup</h5></div></div>
<p>利用任意两个样本<span class="mathjax-exps">$(\xv_a, y_a)$</span>、<span class="mathjax-exps">$(\xv_b, y_b)$</span>生成新样本</p>
<p>

$$
\begin{align*}
    (\beta \xv_a + (1 - \beta) \xv_b, \beta y_a + (1 - \beta) y_b)
\end{align*}
$$
</p>

<br>
<p>假设模型已经有能力预测<span class="mathjax-exps">$y_a = f(\xv_a)$</span>、<span class="mathjax-exps">$y_b = f(\xv_b)$</span>，那么此时还需满足</p>
<p>

$$
\begin{align*}
    f(\beta \xv_a + (1 - \beta) \xv_b) = \beta y_a + (1 - \beta) y_b = \beta f(\xv_a) + (1 - \beta) f(\xv_b)
\end{align*}
$$
</p>

<br>
<p>这个函数方程的解是线性函数，即 mixup 希望学到的<span class="mathjax-exps">$f$</span>是线性函数</p>
<div class="bottom6"></div>
<h3 class="mume-header" id="%E6%8A%AB%E7%9D%80%E6%95%B0%E6%8D%AE%E5%A2%9E%E5%BC%BA%E5%A4%96%E8%A1%A3%E7%9A%84%E6%AD%A3%E5%88%99%E5%8C%96%E6%96%B9%E6%B3%95">披着数据增强外衣的正则化方法！</h3>

<div class="footer"><hr class="hr_bottom"><div class="multi_column"><h6 class="bottom_left">图神经网络导论</h6><h6 class="bottom_center">神经网络</h6><h6 class="bottom_right">tengzhang@hust.edu.cn</h6></div></div>
</section></section><section data-notes="" lineno="1528" class="slide " data-line="1528" data-h="18" data-v="0">
<div class="header"><img class="hust" src=""><div class="title"><hr class="hr_top"><h5>总结 当代炼丹术</h5></div></div>
<p><!--?xml version="1.0" encoding="UTF-8" standalone="no"?-->

<!-- Generated by graphviz version 2.40.1 (20161225.0304)
 -->
<!-- Title: g Pages: 1 -->
<svg width="645pt" height="251pt" viewBox="0.00 0.00 644.70 251.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 247)">
<title>g</title>
<g id="clust1" class="cluster">
<title>cluster_1</title>
<polygon fill="transparent" stroke="#586e75" stroke-dasharray="5,2" points="8,-8 8,-235 115.1464,-235 115.1464,-8 8,-8"></polygon>
<text text-anchor="middle" x="61.5732" y="-218.4" font-family="EBG,fzlz" font-size="14.00" fill="#586e75">增强品质</text>
</g>
<g id="clust2" class="cluster">
<title>cluster_2</title>
<polygon fill="transparent" stroke="#586e75" stroke-dasharray="5,2" points="128.1464,-8 128.1464,-235 221.4508,-235 221.4508,-8 128.1464,-8"></polygon>
<text text-anchor="middle" x="174.7986" y="-218.4" font-family="EBG,fzlz" font-size="14.00" fill="#586e75">设计灵阵</text>
</g>
<g id="clust3" class="cluster">
<title>cluster_3</title>
<polygon fill="transparent" stroke="#586e75" stroke-dasharray="5,2" points="234.4508,-8 234.4508,-235 365.5894,-235 365.5894,-8 234.4508,-8"></polygon>
<text text-anchor="middle" x="300.0201" y="-218.4" font-family="EBG,fzlz" font-size="14.00" fill="#586e75">精通用法</text>
</g>
<g id="clust4" class="cluster">
<title>cluster_4</title>
<polygon fill="transparent" stroke="#586e75" stroke-dasharray="5,2" points="378.5894,-8 378.5894,-235 498.226,-235 498.226,-8 378.5894,-8"></polygon>
<text text-anchor="middle" x="438.4077" y="-218.4" font-family="EBG,fzlz" font-size="14.00" fill="#586e75">氪金</text>
</g>
<g id="clust5" class="cluster">
<title>cluster_5</title>
<polygon fill="transparent" stroke="#586e75" stroke-dasharray="5,2" points="511.226,-8 511.226,-235 628.7026,-235 628.7026,-8 511.226,-8"></polygon>
<text text-anchor="middle" x="569.9643" y="-218.4" font-family="EBG,fzlz" font-size="14.00" fill="#586e75">控制调节</text>
</g>
<!-- 灵材 -->
<g id="node1" class="node">
<title>灵材</title>
<text text-anchor="middle" x="61.5732" y="-178.6" font-family="EBG,fzlz" font-size="18.00" fill="#b58900">灵材</text>
</g>
<!-- 丹方 -->
<g id="node5" class="node">
<title>丹方</title>
<text text-anchor="middle" x="174.7986" y="-178.6" font-family="EBG,fzlz" font-size="18.00" fill="#b58900">丹方</text>
</g>
<!-- 灵材&#45;&gt;丹方 -->
<g id="edge1" class="edge">
<title>灵材-&gt;丹方</title>
<path fill="none" stroke="#586e75" d="M88.6935,-184C104.8203,-184 125.3771,-184 142.3601,-184"></path>
<polygon fill="#586e75" stroke="#586e75" points="147.5072,-184 142.5072,-186.2501 145.0072,-184 142.5072,-184.0001 142.5072,-184.0001 142.5072,-184.0001 145.0072,-184 142.5071,-181.7501 147.5072,-184 147.5072,-184"></polygon>
</g>
<!-- 空间属性 -->
<g id="node2" class="node">
<title>空间属性</title>
<text text-anchor="middle" x="61.5732" y="-128.6" font-family="EBG,fzlz" font-size="18.00" fill="#268bd2">空间属性</text>
</g>
<!-- 时间属性 -->
<g id="node3" class="node">
<title>时间属性</title>
<text text-anchor="middle" x="61.5732" y="-78.6" font-family="EBG,fzlz" font-size="18.00" fill="#268bd2">时间属性</text>
</g>
<!-- 图属性 -->
<g id="node4" class="node">
<title>图属性</title>
<text text-anchor="middle" x="61.5732" y="-28.6" font-family="EBG,fzlz" font-size="18.00" fill="#268bd2">图属性</text>
</g>
<!-- 丹炉 -->
<g id="node9" class="node">
<title>丹炉</title>
<text text-anchor="middle" x="300.0201" y="-178.6" font-family="EBG,fzlz" font-size="18.00" fill="#b58900">丹炉</text>
</g>
<!-- 丹方&#45;&gt;丹炉 -->
<g id="edge2" class="edge">
<title>丹方-&gt;丹炉</title>
<path fill="none" stroke="#586e75" d="M201.9698,-184C221.3327,-184 247.4383,-184 267.8443,-184"></path>
<polygon fill="#586e75" stroke="#586e75" points="272.9019,-184 267.902,-186.2501 270.4019,-184 267.9019,-184.0001 267.9019,-184.0001 267.9019,-184.0001 270.4019,-184 267.9019,-181.7501 272.9019,-184 272.9019,-184"></polygon>
</g>
<!-- 卷积类 -->
<g id="node6" class="node">
<title>卷积类</title>
<text text-anchor="middle" x="174.7986" y="-128.6" font-family="EBG,fzlz" font-size="18.00" fill="#268bd2">卷积类</text>
</g>
<!-- 循环类 -->
<g id="node7" class="node">
<title>循环类</title>
<text text-anchor="middle" x="174.7986" y="-78.6" font-family="EBG,fzlz" font-size="18.00" fill="#268bd2">循环类</text>
</g>
<!-- 图类 -->
<g id="node8" class="node">
<title>图类</title>
<text text-anchor="middle" x="174.7986" y="-28.6" font-family="EBG,fzlz" font-size="18.00" fill="#268bd2">图类</text>
</g>
<!-- 真火 -->
<g id="node13" class="node">
<title>真火</title>
<text text-anchor="middle" x="438.4077" y="-178.6" font-family="EBG,fzlz" font-size="18.00" fill="#b58900">真火</text>
</g>
<!-- 丹炉&#45;&gt;真火 -->
<g id="edge3" class="edge">
<title>丹炉-&gt;真火</title>
<path fill="none" stroke="#586e75" d="M327.0311,-184C349.5546,-184 381.721,-184 405.6995,-184"></path>
<polygon fill="#586e75" stroke="#586e75" points="410.9918,-184 405.9919,-186.2501 408.4918,-184 405.9918,-184.0001 405.9918,-184.0001 405.9918,-184.0001 408.4918,-184 405.9918,-181.7501 410.9918,-184 410.9918,-184"></polygon>
</g>
<!-- 半自动炼制 -->
<g id="node10" class="node">
<title>半自动炼制</title>
<text text-anchor="middle" x="300.0201" y="-128.6" font-family="EBG,fzlz" font-size="18.00" fill="#268bd2">半自动炼制</text>
</g>
<!-- TensorFlow -->
<g id="node11" class="node">
<title>TensorFlow</title>
<text text-anchor="middle" x="300.0201" y="-78.6" font-family="EBG,fzlz" font-size="18.00" fill="#268bd2">TensorFlow</text>
</g>
<!-- PyTorch -->
<g id="node12" class="node">
<title>PyTorch</title>
<text text-anchor="middle" x="300.0201" y="-28.6" font-family="EBG,fzlz" font-size="18.00" fill="#268bd2">PyTorch</text>
</g>
<!-- 炼制 -->
<g id="node17" class="node">
<title>炼制</title>
<text text-anchor="middle" x="569.9643" y="-178.6" font-family="EBG,fzlz" font-size="18.00" fill="#b58900">炼制</text>
</g>
<!-- 真火&#45;&gt;炼制 -->
<g id="edge4" class="edge">
<title>真火-&gt;炼制</title>
<path fill="none" stroke="#586e75" d="M465.6663,-184C485.5935,-184 512.8029,-184 534.4336,-184"></path>
<polygon fill="#586e75" stroke="#586e75" points="539.5217,-184 534.5218,-186.2501 537.0217,-184 534.5217,-184.0001 534.5217,-184.0001 534.5217,-184.0001 537.0217,-184 534.5217,-181.7501 539.5217,-184 539.5217,-184"></polygon>
</g>
<!-- 炼制速度 -->
<g id="node14" class="node">
<title>炼制速度</title>
<text text-anchor="middle" x="438.4077" y="-128.6" font-family="EBG,fzlz" font-size="18.00" fill="#268bd2">炼制速度</text>
</g>
<!-- 售 核弹厂 -->
<g id="node15" class="node">
<title>售 核弹厂</title>
<text text-anchor="middle" x="438.4077" y="-78.6" font-family="EBG,fzlz" font-size="18.00" fill="#268bd2">售 核弹厂</text>
</g>
<!-- 租 阿里云 -->
<g id="node16" class="node">
<title>租 阿里云</title>
<text text-anchor="middle" x="438.4077" y="-28.6" font-family="EBG,fzlz" font-size="18.00" fill="#268bd2">租 阿里云</text>
</g>
<!-- 批量大小 -->
<g id="node18" class="node">
<title>批量大小</title>
<text text-anchor="middle" x="569.9643" y="-128.6" font-family="EBG,fzlz" font-size="18.00" fill="#268bd2">批量大小</text>
</g>
<!-- 随机丢弃 -->
<g id="node19" class="node">
<title>随机丢弃</title>
<text text-anchor="middle" x="569.9643" y="-78.6" font-family="EBG,fzlz" font-size="18.00" fill="#268bd2">随机丢弃</text>
</g>
<!-- 提早停止 -->
<g id="node20" class="node">
<title>提早停止</title>
<text text-anchor="middle" x="569.9643" y="-28.6" font-family="EBG,fzlz" font-size="18.00" fill="#268bd2">提早停止</text>
</g>
</g>
</svg>
一个优秀丹师的自我修养：</p>
<ul>
<li>灵材品质差要会手动增强，旋转、翻转、缩放、平移、加噪声、标记平滑</li>
<li>因材制宜设计灵阵，空间属性灵材用卷积类灵阵，时间属性灵材用循环类...</li>
<li>仔细观察丹炉状态，防止爆炉，若最终仙丹成色不好则改进配置重新来过</li>
</ul>
<div class="footer"><hr class="hr_bottom"><div class="multi_column"><h6 class="bottom_left">图神经网络导论</h6><h6 class="bottom_center">神经网络</h6><h6 class="bottom_right">tengzhang@hust.edu.cn</h6></div></div>
</section>
      </div>
    </div>
    
      </div>
      
      
    
    
      <script>
        Reveal.initialize({"margin":0,"transition":"none","enableSpeakerNotes":true,"dependencies":[{"src":"../common/js/notes/notes.js","async":true}]})
      </script>
      
    <script>
// config mermaid init call
// http://knsv.github.io/mermaid/#configuration
//
// You can edit the 'MERMAID_CONFIG' variable below.
MERMAID_CONFIG = {
  startOnLoad: false
}

if (window['MERMAID_CONFIG']) {
  window['MERMAID_CONFIG'].startOnLoad = false
  window['MERMAID_CONFIG'].cloneCssStyles = false
  window['MERMAID_CONFIG'].theme = "mermaid.css"
}
mermaid.initialize(window['MERMAID_CONFIG'] || {})
if (typeof(window['Reveal']) !== 'undefined') {
  function mermaidRevealHelper(event) {
    var currentSlide = event.currentSlide
    var diagrams = currentSlide.querySelectorAll('.mermaid')
    for (var i = 0; i < diagrams.length; i++) {
      var diagram = diagrams[i]
      if (!diagram.hasAttribute('data-processed')) {
        mermaid.init(null, diagram, ()=> {
          Reveal.slide(event.indexh, event.indexv)
        })
      }
    }
  }
  Reveal.addEventListener('slidechanged', mermaidRevealHelper)
  Reveal.addEventListener('ready', mermaidRevealHelper)
} else {
  mermaid.init(null, document.getElementsByClassName('mermaid'))
}
</script>
    
    
    
    
    
  
    </body></html>